自作mysqlインストールの場合、my.cnfはどこにありますか?インストールしますか?
デフォルトではmy.cnfはありません。そのため、MySQLはすべてのデフォルト設定で起動します。デフォルトを上書きするために独自のmy.cnfを作成したい場合は、/ etc/my.cnfに配置します。
また、mysql --help
を実行して、リストにあるconfの場所を探すこともできます。
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf
The following groups are read: mysql client
The following options may be given as the first argument:
--print-defaults Print the program argument list and exit.
--no-defaults Don't read default options from any option file.
--defaults-file=# Only read default options from the given file #.
--defaults-extra-file=# Read this file after the global files are read.
お分かりのように、confファイルを迂回したり、コマンドラインでmysqlを起動したときに読み込む他のファイルを指定したりするためのオプションもあります。
自作mysqlのインストールのsupport-filesフォルダーにサンプル構成ファイルが含まれています。
ls $(brew --prefix mysql)/support-files/my-*
デフォルト設定を変更する必要がある場合は、これらのいずれかを出発点として使用できます。
cp $(brew --prefix mysql)/support-files/my-default.cnf /usr/local/etc/my.cnf
@rednawが指摘するように、MySQLの自作インストールはおそらく/usr/local
にあるので、my.cnfファイルをシステムの/etc
フォルダーに追加しないでください。そこで、ファイルを/usr/local/etc
にコピーするようにコマンドを変更しました。
MySQLではなくMariaDBを使用している場合は、以下を使用してください。
cp $(brew --prefix mariadb)/support-files/my-small.cnf /usr/local/etc/my.cnf
見つけるための一つの方法:
Sudo /usr/libexec/locate.updatedb
# wait a few minutes for it to finish
locate my.cnf
/ etc/my.cnfファイルの設定を上書きできませんでした。ジョンが提案したように私は捜した https://stackoverflow.com/a/7974114/717251
Sudo /usr/libexec/locate.updatedb
# wait a few minutes for it to finish
locate my.cnf
に別のmy.cnfが見つかりました。
/usr/local/Cellar/mysql/5.6.21/my.cnf
このファイルを変更することは私のために働いた!起動エージェントを再起動することを忘れないでください。
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
更新:
ごく最近のhomebrewをインストールしたのなら、mysqlを再起動するのにbrew servicesコマンドを使うべきです(インストールされたhomebrew mysqlバージョン、すなわちmysqlまたは[email protected]を使ってください):
brew services stop mysql
brew services start mysql
私のシステムでは
nano /usr/local/etc/my.cnf.default
テンプレートとして
nano /usr/local/etc/my.cnf
働くように。
シェルでmy_print_defaults --help
とタイプしてください。
結果の下部に、サーバーが構成を読み取る元のファイルが表示されます。それはこのようなものをプリントします:
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/etc/my.cnf ~/.my.cnf
mysql --help
はファイルのリストを表示するので、それらのうちどれが存在するかを見るために結果をls
にパイプ処理することが有用であると思います。
$ mysql --help | grep /my.cnf | xargs ls
ls: /etc/my.cnf: No such file or directory
ls: /etc/mysql/my.cnf: No such file or directory
ls: ~/.my.cnf: No such file or directory
/usr/local/etc/my.cnf
私の(自作インストール)MySQL 5.7では、ファイルは/usr/local/etc/my.cnf
にあります。
答えはノーだと思います。 〜/ .my.cnfまたは/ usr/local/etcにインストールするのが望ましい解決方法のようです。
my.cnf
ファイルが特定のパッケージによって提供されている場所を見つけることができます。
brew list mysql # or: mariadb
そのファイルが読み取られたかどうかを確認することに加えて、実行することができます。
Sudo fs_usage | grep my.cnf
そのファイルに関連してファイルシステムの活動をリアルタイムで表示します。
Homebrewの場合、mysqlはCellarディレクトリでmy.cnfも検索します。次に例を示します。
/usr/local/Cellar/mysql/5.7.21/my.cnf
そのためには、設定をバイナリに近づけておくことを好みます - もし見つからなければここにmy.cnf
を作成してください。
変更後にmysqlを再起動します。
brew services restart mysql
MacOS(High Sierra)では、自作でインストールしたMySQL。
Mysql環境からグローバル変数を増やすことは成功しませんでした。したがってその場合、〜/ .my.cnfを作成するのが最も安全な方法です。 [mysqld]を使用して変数を追加すると、変更が含まれます(注:[mysql]を使用して変更した場合、変更は機能しない可能性があります)。
<〜/ .my.cnf> [mysqld] connect_timeout = 43200 max_allowed_packet = 2048 M net_buffer_length = 512 M
Mysqlサーバーを再起動します。そして変数をチェックしてください。よ
sql> SELECT @@ max_allowed_packet; + ---------------------- + | @@ max_allowed_packet | + ---------------------- + | 1073741824 | + ---------------------- +
1行セット(0.00秒)