回答:
MySQLフォーラムのこのスレッドは次のように述べています。
デフォルトでは、OS Xインストールはmy.cnfを使用せず、MySQLはデフォルト値のみを使用します。独自のmy.cnfを設定するには、/ etcに直接ファイルを作成します。
OS Xのサンプル設定ファイルはにあり/usr/local/mysql/support-files/
ます。
そして、そこにそれらが見つからない場合、MySQLWorkbenchは次の方法でそれらを作成できます。
my.cnf
編集中のファイルに実際にロードされていることを確認することをお勧めしますmysql --verbose --help | grep my.cnf
Mac OS X Maverickの場合、MySQLをHomebrew経由でインストールすると、次の場所に配置されます。 /usr/local/opt/mysql/my.cnf
/usr/local/mysql/etc
。私はハイシエラにいますが、数バージョン前にインストールされていました。
一般に、UnixおよびUnixライクなシステムでは、MySQL / MariaDBプログラムは次の場所にあるconfig / startupファイルを(指定された順序で)読み取ります。
/etc/my.cnf
- グローバル/etc/mysql/my.cnf
- グローバルSYSCONFDIR/my.cnf
- グローバル
SYSCONFDIR
MySQLのビルド時にSYSCONFDIR
オプションで指定されたディレクトリを表しますCMake
。デフォルトでは、これはコンパイル済みのインストールディレクトリの下にあるetcディレクトリです。
$MYSQL_HOME/my.cnf
-サーバー固有(サーバーのみ)
MYSQL_HOME
サーバー固有のmy.cnf
ファイルが存在するディレクトリへのパスを含む環境変数です。MYSQL_HOME
が設定されていない場合にmysqld_safe
プログラムを使用してサーバーを起動mysqld_safe
するBASEDIR
と、MySQLの基本インストールディレクトリであるに設定されます。
存在する--defaults-extra-file=path
場合に指定されたファイル
~/.my.cnf
-ユーザー固有~/.mylogin.cnf
-ユーザー固有(クライアントのみ)出典:オプションファイルの使用。
注:Unixプラットフォームでは、MySQLは誰でも書き込み可能な構成ファイルを無視します。これは、セキュリティ対策として意図的なものです。
さらに、Macではそれをチェックする簡単な方法があります。
実行: sudo fs_usage | grep my.cnf
これにより、そのファイルに関連するファイルシステムアクティビティがリアルタイムで報告されます。
別のターミナルで、MySQL / MariaDBを再起動します。例:
brew services restart mysql
または:
brew services restart mariadb
のある端末でfs_usage
は、適切な場所が表示されます。
15:52:22 access /usr/local/Cellar/mariadb/10.1.14/my.cnf 0.000002 sh
そのため、ファイルが存在しない場合は作成してください。
sudo fs_usage | grep my.cnf
方法は非常に効率的です。このファイルは次のフォルダにあります:/usr/local/etc/my.cnf
private/etc/my.cnf
、/usr/local/etc/my.cnf
、/usr/local/Cellar/mysql/<myVersion>/my.cnf
、~.my.cnf
とmy_print_def
右端の列インチ それからしばらくする/usr/local/etc/my.cnf
と、一番右の列に私の端末のみが表示されます。しかし、これらのmy.cnf
ファイルはすべて存在しません!
Mac OS X El Capitan上のMySQL 5.7の場合: /usr/local/mysql/etc/my.cnf
からデフォルトの設定をコピー /usr/local/mysql/support-files/my-default.cnf
macOS Sierraを使用していて、ファイルが存在しない場合は、次を実行します。
mysql --help or mysql --help | grep my.cnf
mysql用のmy.cnfの可能な場所とロード/読み取りシーケンスを確認するには、提案されたディレクトリの1つにmy.cnfファイルを作成し、次の行を追加します。
[mysqld]
sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
あなたはできるsudo touch /{preferred-path}/my.cnf
、その後でSQLモードを追加したファイルを編集します
sudo nano /{preferred-path}/my.cnf
次に、mysqlを再起動してください。幸せなコーディング
Mac OS X Mavericksの現在のMySQLパッケージ(この記事の執筆時点ではmysql-5.6.17-osx10.7-x86_64)は、インストール中に自動的にmy.cnfを作成します。
これは/usr/local/mysql-5.6.17-osx10.7-x86_64/my.cnf
、バージョンに応じてパスを調整するにあります。
したがって、これらのことはどれも私にとってはうまくいきませんでした。mysqlコミュニティサーバーの現在のdmgインストールを使用しています。psは、通常my.cnfで最も重要なすべてのパラメーターがコマンドラインで渡されることを示しており、それがどこから来ているのかわかりませんでした。私の箱の全文検索を行った後、私はそれを次の場所で見つけました:
/Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
したがって、それらをそこで変更するか、それらを取り出して、my.cnfにあるものを実際に配置することにした場所を尊重することができます。
楽しい!
そのファイルで見つかったファイル情報の例:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key> <string>com.oracle.oss.mysql.mysqld</string>
<key>ProcessType</key> <string>Interactive</string>
<key>Disabled</key> <false/>
<key>RunAtLoad</key> <true/>
<key>KeepAlive</key> <true/>
<key>SessionCreate</key> <true/>
<key>LaunchOnlyOnce</key> <false/>
<key>UserName</key> <string>_mysql</string>
<key>GroupName</key> <string>_mysql</string>
<key>ExitTimeOut</key> <integer>600</integer>
<key>Program</key> <string>/usr/local/mysql/bin/mysqld</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/mysql/bin/mysqld</string>
<string>--user=_mysql</string>
<string>--basedir=/usr/local/mysql</string>
<string>--datadir=/usr/local/mysql/data</string>
<string>--plugin-dir=/usr/local/mysql/lib/plugin</string>
<string>--log-error=/usr/local/mysql/data/mysqld.local.err</string>
<string>--pid-file=/usr/local/mysql/data/mysqld.local.pid</string>
<string>--keyring-file-data=/usr/local/mysql/keyring/keyring</string>
<string>--early-plugin-load=keyring_file=keyring_file.so</string>
</array>
<key>WorkingDirectory</key> <string>/usr/local/mysql</string>
</dict>
</plist>
/etc/my.cnf
ファイルを確認できます
/usr/local/bin/mysql.server
どこからmy.conf
読み取られているかを確認します。
通常、それからである/etc/my.cnf
か、~/my.cnf
または~/.my.cnf
~/.my.cnf
。ファイル名の前にドットを追加します。
使用しているバージョンのMySQLドキュメントが役立ちます。通常、Options File
またはとして記述されMySQL Config File
ます。
ドキュメントには、ドキュメント内のこれらのファイルの場所と、その他の場所がありますVITAL
の場所、および場所などの情報と、構成ファイルがどのように見える必要があるかの小さな例があります。
Unixプラットフォームでは、MySQLは誰でも書き込み可能な構成ファイルを無視します。
これは、セキュリティ対策として意図的なものです。
言い換えると、設定ファイルに間違った権限が設定されていると、ロードされません。
構成ファイルの1つの初期セットアップ許可の例:
RIZZOMBP$ ls -lah /etc/my.cnf
-rw-r--r-- 1 myusername wheel 0B Feb 25 20:40 /etc/my.cnf
!include
オプションファイルでディレクティブを使用して、他のオプションファイルを含めたり、!includedir
特定のディレクトリでオプションファイルを検索したりできます。... MySQLは、ディレクトリ内のオプションファイルが読み込まれる順序を保証しません ...
Unixオペレーティングシステムで!includedirディレクティブを使用して検索およびインクルードされるファイルには、ファイル名の末尾がである必要があります
.cnf
。Windowsでは、このディレクティブは.ini
、.cnf
拡張子がorのファイルをチェックします。
設定ファイルやログファイルなどの場所を見つける方法の例:
これは設定ファイルを表示しませんが、インストールファイル/フォルダーを見つけるのに役立ちます。
MySQLバージョン5.7および8+
SELECT * FROM PERFORMANCE_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_VALUE LIKE '%\/%';
MySQLバージョン<= 5.6
SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES WHERE VARIABLE_VALUE LIKE '%\/%';
RIZZOMBP$ mysql --help | grep "Default options" -A 1
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
上記のコマンドクレジット:ServerFaultのErwin Mayer
RIZZOMBP$ mysqld --verbose --help | grep '/my.cnf' -B 1
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
または
RIZZOMBP$ ps aux | grep -i mysqld | grep -v $USER
_mysql 106 0.4 2.5 4232336 422112 ?? Ss 7:01PM 0:57.12
/usr/local/mysql/bin/mysqld
--user=_mysql
--basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data
--plugin-dir=/usr/local/mysql/lib/plugin
--log-error=/usr/local/mysql/data/mysqld.local.err
--pid-file=/usr/local/mysql/data/mysqld.local.pid
--keyring-file-data=/usr/local/mysql/keyring/keyring
--early-plugin-load=keyring_file=keyring_file.so
詳細な参照サンプルmy.cnfが必要な場合:
URLへのアフィリエーション/関連付けはありません
RIZZOMBP$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.14.3
BuildVersion: 18D109
RIZZOMBP$ mysql -V
mysql Ver 8.0.15 for macos10.14 on x86_64 (MySQL Community Server - GPL)
RIZZOMBP$ mysqld -V
/usr/local/mysql-8.0.15-macos10.14-x86_64/bin/mysqld
Ver 8.0.15 for macos10.14 on x86_64 (MySQL Community Server - GPL)
インストールされている自作のmacOS Sierraにチェックインしました MySql 5.7.12
サポートファイルは次の場所にあります
/usr/local/opt/mysql/support-files
またはmy-default.cnf
としてコピーするだけで、再起動時に構成が取得されます。/etc/my.cnf
/etc/mysql/my.cnf
macOS High Sierraバージョン10.13.3でmysqlバージョン5.7.17を使用していますが、mysql設定ファイルはこちらにあります。
cd /usr/local/mysql/support-files/my-default.cnf
mysql --verbose --help | grep my.cnf
としてごとに、それが拾ってしまいます。ここでDO NOT EDIT THIS FILE. It's a template which will be copied to the default location during install, and will be replaced if you upgrade to a newer version of MySQL.
私の場合、ファイルは存在しませんでした。MySQL Workbenchで、OPTIONS FILEに行っていくつかのデフォルト値を見つけました。「適用」をクリックしました。許可を求めました。次に、/ etcの下にmy.cnfファイルを作成しました。ただし、[適用]を初めてクリックしたときは、デフォルトの構成を変更しないことに注意してください。ファイルが作成されたら、「適用」をクリックしたときに適用される変更を行うことができます。そうしないと、変更を加えたときに適用ボタンが表示されません。
/etc/mysql/my.cnf
がありますが、MySQL Workbenchはそれを認識していません。代わりに、パスが空の構成ファイルが見つからないというメッセージが表示され、新しいファイルの作成が提案されます。
私はMacOS Mojave(10.14.6)を実行していて、MySQLに私の設定ファイルを認識させるには、それを/usr/local/mysql-5.7.26-macos10.14-x86_64/etc/my.cnfに配置する必要がありました。また、/usr/local/@mysql/etc/my.cnfからそれを指すシンボリックリンクがあります。
私はsql_mode = only_full_group_byをオフにしようとしており、設定ファイルでそのオプションを設定することが、セッション間で設定を維持できる唯一の方法でした。構成ファイルの内容は次のとおりです。
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION
私はHomebrewセットアップではなく、MySQLのネイティブインストールを使用しています。
mysql 8.0.19の場合、ついにmy.cnfをここに見つけました:/usr/local/opt/mysql/.bottle/etc / usr / local / opt / mysql /にコピーして変更しました。次に、mysqlサービスを再起動すると、機能します。