web-dev-qa-db-ja.com

使用されているMySQL構成ファイルを判別します

MySQL 5.0が現在使用している構成ファイルを特定するコマンドはありますか?

131
yalestar

Linuxを使用している場合は、strace ./mysqldなどのstraceで 'mysqld'を起動します。

他のすべてのシステムコールの中には、次のようなものがあります。

stat64("/etc/my.cnf", 0xbfa3d7fc)       = -1 ENOENT (No such file or directory)
stat64("/etc/mysql/my.cnf", {st_mode=S_IFREG|0644, st_size=4227, ...}) = 0
open("/etc/mysql/my.cnf", O_RDONLY|O_LARGEFILE) = 3

ご覧のとおり、.. itには.cnfファイルがリストされており、使用を試みて最終的に使用します。

55
user59634

素晴らしい「ハイパフォーマンスMySQL」O'Reillyの本から引用:

$ which mysqld
/usr/sbin/mysqld

$ /usr/sbin/mysqld --verbose --help | grep -A 1 "Default options"
Default options are read from the following files in the given order:
/etc/mysql/my.cnf ~/.my.cnf /usr/etc/my.cnf
234
Mark B

mysql --verbose --help | lessを実行すると、11行目でどの.cnfファイルが検索されるかがわかります。

mysql --print-defaultsを実行して、使用する設定値の方法を示すこともできます。これは、どの設定ファイルがロードされているかを特定するのにも役立ちます。

59
staticsan

Windowsを使用しており、MySQLコミュニティ5.6の最新バージョンをインストールしました

構成ファイルの使用状況を確認するために行ったのは、[管理ツール]> [サービス]> [MySQL56]> [右クリック]> [プロパティ]に移動し、実行可能ファイルへのパスを確認することでした。

「C:/ Program Files/MySQL/MySQL Server 5.6/bin\mysqld」--defaults-file = "C:\ ProgramData\MySQL\MySQL Server 5.6\my.ini" MySQL56

代わりに使用することです

mysqladmin variables
17
Steve

mysqld --help --verboseは危険です。インスタンスを実行するためにpidfileを簡単に上書きできます! --pid-file = XYZで使用します

ああ、実行中のインスタンスが複数ある場合、実際には使用できません。デフォルト値のみが表示されます。

それについての本当に良い記事:

MySQL構成ファイルの検索方法

13
Sasha

Ubuntuで簡単なテストを行いました。

  • /etc/mysql/my.cnfを作成したmysql-serverをインストールした

  • mysqld --verbose --help | grep -A 1「デフォルトオプション」

110112 13:35:26 [注]プラグイン「FEDERATED」は無効になっています。
デフォルトのオプションは、次のファイルから指定された順序で読み取られます。/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf〜/ .my.cnf

  • それぞれ異なるポート番号を持つ/etc/my.cnfと/usr/etc/my.cnfを作成しました

  • mysqlを再起動しました-/usr/etc/my.cnfで設定されたポート番号を使用していました

また、mysqldの--defaults-fileオプションが見つかりました。そこに構成ファイルを指定すると、/ usr/sbin/mysqldによって何が返されるかに関係なく、その構成ファイルのみが使用されます。--verbose --help | grep -A 1「デフォルトオプション」

8
Herta

私はこれが本当に便利だと感じました:

  1. サービスのControl Panel -> Administration Toolsの下のMySQLプロセスを見つけます
  2. 右クリックしてPropertiesを選択します
  3. Path to executableをクリックして選択し、my.ini/my.cfgへのパスが含まれているかどうかを確認します
3
Luke

MySQL Workbenchを使用すると、「サーバーステータス」の下に表示されます。 enter image description here

3
fanThomas

一部のサーバーには、複数のMySQLバージョンがインストールおよび構成されています。以下のUnixコマンドで実行されている正しいバージョンを扱っていることを確認してください。

ps -ax | grep mysql
2
Heather McVay

macを実行している場合にのみ、これは次の方法でも実現できます。

Sudo dtruss mysqld 2>&1 | grep cnf
1
talsibony

サービスとしてmysqlを使用してWindowsサーバーを実行している場合、実行している設定ファイルを見つける簡単な方法は、サービスコントロールパネルを開き、mysqlサービス(私の場合は「MYSQL56」)を見つけ、右クリックしてプロパティをクリックすることです。次に、ここから「実行可能ファイルへのパス」を確認できます。これには、構成ファイルの場所を指すdefaults-fileスイッチが必要です。

1
Kershrew

Windowsを使用している場合は、Sysinternals procmon を使用できます。それを開き、このようなフィルター設定を構成し、「追加」をクリックします。これで、procmonはmysqldを監視します。

enter image description here

ここで、通常どおりmysqlサーバーを起動します。 Procmonはmysqlのバックグラウンド操作をキャプチャします。 「my」を検索します。 procmon結果ペインに次のようなものが表示されます。

enter image description here

Mysqlが構成ファイルのリストを順番に検索することは明らかです。私の場合、C:\mysql-5.7.19-winx64\my.cnfが正常に見つかったため、これを使用しています。

0
Just a learner