GNU/Linux >> Linux の 問題 >  >> Linux

MySQL の my.cnf の場所を見つける方法

ターミナルでいつでも find を実行できます。

find / -name my.cnf

これをトレースするための内部 MySQL コマンドはありません。少し抽象的すぎます。ファイルは 5 つ (またはそれ以上?) の場所にある可能性があり、それらはカスケードで読み込まれるため、すべて有効です。

  • /etc/my.cnf
  • /etc/mysql/my.cnf
  • $MYSQL_HOME/my.cnf
  • [datadir]/my.cnf
  • ~/.my.cnf

これらは、MySQL が参照するデフォルトの場所です。複数見つかった場合は、それぞれをロードし、値を互いにオーバーライドします (記載されている順序で、と思います)。また、--defaults-file パラメーターはすべてをオーバーライドできるため、基本的に、これは非常に面倒です。

しかし、非常に紛らわしいので、/etc/my.cnf だけにある可能性が高いです。

(値だけを見たい場合:SHOW VARIABLES 、ただし、そうするには権限が必要です。)


mysql --help を実行 すると以下が表示されます:

Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf


mysql --help | grep /my.cnf | xargs ls

my.cnfの場所を教えてくれます Mac/Linux にあります

ls: cannot access '/etc/my.cnf': No such file or directory
ls: cannot access '~/.my.cnf': No such file or directory
 /etc/mysql/my.cnf

この場合、/etc/mysql/my.cnf にあります。

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

この場合、/usr/local/etc/my.cnf にあります。


MySQL が my.cnf (または Windows では my.ini) を検索するすべての場所のリストを実際に「要求」することができます。ただし、これは SQL クエリではありません。むしろ、実行してください:

$ mysqladmin --help

または、5.7 以前:

$ mysqld --help --verbose

一番最初の行に、探しているすべての my.cnf の場所のリストを含むメッセージがあります。私のマシンでは:

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

または、Windows の場合:

Default options are read from the following files in the given order:
C:\Windows\my.ini
C:\Windows\my.cnf
C:\my.ini
C:\my.cnf
C:\Program Files\MySQL\MySQL Server 5.5\my.ini
C:\Program Files\MySQL\MySQL Server 5.5\my.cnf

ただし、これらの場所のいずれにも my.cnf ファイルがない場合があることに注意してください。 .そのため、独自にファイルを作成できます。MySQL ディストリビューションで提供されるサンプル構成ファイルの 1 つを使用します (Linux の場合 - /usr/share/mysql/*.cnf を参照)。 ファイルを開き、適切なものを使用してください - /etc/my.cnf にコピーしてください 必要に応じて変更します)。

また、コマンド ライン オプション --defaults-file もあります。 my.cnf または my.ini ファイルへのカスタム パスを定義する場合があります。たとえば、これは Windows 上の MySQL 5.5 の場合です。通常は mysqld --help --verbose でリストされないデータ ディレクトリの my.ini ファイルを指します。 . Windows の場合 - サービス プロパティを参照して、これが該当するかどうかを確認してください。

最後に、https://dev.mysql.com/doc/refman/8.0/en/option-files.html を確認してください - 詳細が記載されています。


Linux
  1. 最大のファイル記述子を持つプロセスを見つける方法は?

  2. Mysqlデータディレクトリを移動する方法は?

  3. Python でファイルまたはディレクトリの所有者を見つける方法

  1. Linux上のmysql.sockファイルの正しい場所は何ですか?

  2. ディレクトリツリーで最も古いファイルを見つけるにはどうすればよいですか

  3. 特定のプロセスの .pid ファイルを見つける方法

  1. Linuxでファイルを見つける方法

  2. Linuxで特定のファイルを提供するパッケージを見つける方法

  3. Linuxのディレクトリツリーで最も古いファイルを見つける方法