自作のmysqlインストールの場合、my.cnfはどこにありますか?


293

自作のmysqlインストールの場合、my.cnfはどこにありますか?インストールしますか?

回答:


263

デフォルトでは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を呼び出したときに読み取る他のファイルを指定したりするためのオプションもあります。


49
これはもはやそうではないようです。/usr/local/Cellar/mysql/5.6.15/(またはインストールしたバージョン)にmy.cnfファイルが表示されます
William Turrell

6
@williamt "mysql --help"は、そのファイルが使用されていると表示していません。これは、インストールファイルに付属しているデフォルトにすぎないと思います
Vinicius Pinto

2
5.6.26にいますが、表示されません。
Adam Grant、

3
:5.6.26上で実行することによりlolcatedすることができます ls $(brew --prefix mysql)/*.cnf
danielgpm

23
mysql --help | grep cnf行を見つけるのは実際には簡単でした。
Vinyll 2016年

267

自作の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

4
sudo cp $(brew --prefix mysql)/support-files/my-default.cnf /etc/my.cnf
Matt Clegg 2013

7
HomebrewがMySQLをインストールした場合/usr/local/(これがデフォルトだと思います)、ルート特権を必要としないmy.confinを配置することもできます/usr/local/etc/
gitaarik

1
brew --prefix mysqlは正しいパスを提供しません。私にとっては、「/ usr / local / Cellar / mysql / 5.7.16」を示していますが、実際にはmariadbは「/ usr / local / opt / mariadb /」にインストールされています
zhaozhi

@zhaozhi使用しbrew --prefix mariadbます。MariaDBディストリビューションにmy-default.cnfは存在しませんmy-small.cnf。使用してください。これを試してくださいcp $(brew --prefix mariadb)/support-files/my-small.cnf /usr/local/etc/my.cnf
ewalshe 16

これは受け入れられる答えである必要があります。最初のものは間違っています。尋ねられた質問は自作に関するものでした。
BugHunterUK

30

調べる1つの方法:

sudo /usr/libexec/locate.updatedb
# wait a few minutes for it to finish
locate my.cnf

4
素晴らしい答えです。locate.updatedbについて学びました。ただし、デフォルトでは設定ファイルはありません。以下の回答を参照してください
glebm

15
OSX mdfind -name my.cnfではlocateコマンドの代わりに使用できます
JacopKane

locate my.cnfは直接働きました。私は走らなかったsudo /usr/libexec/locate.updatedb
Andru

1
/usr/local/Cellar/mysql/8.0.16/.bottle/etc/my.cnfそして/usr/local/etc/my.cnf 私が得たものでした
Vincent Tang

18

私のシステムでは

nano /usr/local/etc/my.cnf.default 

テンプレートとして

nano /usr/local/etc/my.cnf

働くように。


18

実際には何も役に立ちませんでした-/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

このファイルを変更するとうまくいきました!Launch Agentを再起動することを忘れないでください:

launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist

更新:

Homebrewがかなり最近インストールされている場合は、brew servicesコマンドを使用してmysqlを再起動する必要があります(インストールされているhomebrew mysqlバージョン、つまりmysqlまたはmysql@5.7を使用します)。

brew services stop mysql
brew services start mysql

私はあなたにも実行することができると思うbrew services stop mysqlbrew services start mysqlの代わりにlaunchctl unload ...ライン。
mhulse

1
それは本当ではありません-しかし、この回答を書いている時点では、これらの自家製コマンドはまだ利用できませんでした。回答を更新します
naabster

13

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

私の(Homebrewがインストールされている)MySQL 5.7の場合、ファイルはにあるよう/usr/local/etc/my.cnfです。


10

あなたのシェルタイプで 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

5

my.cnf特定のパッケージによってファイルが提供された場所を見つけることができます。

brew list mysql # or: mariadb

そのファイルが読み取られたかどうかを確認することに加えて、次のコマンドを実行できます。

sudo fs_usage | grep my.cnf

そのファイルに関連するファイルシステムのアクティビティをリアルタイムで表示します。


4

答えはノーだと思います。〜/ .my.cnfまたは/ usr / local / etcにインストールすることをお勧めします。


2
私のMBPでは、/ etc / my.cnfのみで、mysqlのHomebrewインストールに影響を与えることができます。
ewalshe

1

Homebrewの場合、mysqlはそのCellarディレクトリでmy.cnfも検索します。次に例を示します。

/usr/local/Cellar/mysql/5.7.21/my.cnf

設定をバイナリに近づけることを好む場合のために- my.cnfそれが欠けているならここで作成してください。

変更後、mysqlを再起動します。

brew services restart mysql


-1

MacOS(High Sierra)の場合、自作でインストールされたMySQL。

mysql環境からグローバル変数を増やすことは成功しませんでした。したがって、その場合は〜/ .my.cnfの作成が最も安全なオプションです。[mysqld]で変数を追加すると、変更が含まれます(注:[mysql]で変更した場合、変更が機能しない可能性があります)。

<〜/ .my.cnf> [mysqld] connect_timeout = 43200 max_allowed_pa​​cket = 2048M net_buffer_length = 512M

mysqlサーバーを再起動します。変数を確認します。y

sql> SELECT @@ max_allowed_pa​​cket; + ---------------------- + | @@ max_allowed_pa​​cket | + ---------------------- + | 1073741824 | + ---------------------- +

セット内の1行(0.00秒)


-1
  1. $ps aux | grep mysqld /usr/local/opt/mysql/bin/mysqld --basedir=/usr/local/opt/mysql --datadir=/usr/local/var/mysql --plugin-dir=/usr/local/opt/mysql/lib/plugin

  2. my.cfファイルをドロップして /usr/local/opt/mysql

  3. brew services restart mysql

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.