MySQL 5.0が現在使用している構成ファイルを特定するコマンドはありますか?
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ファイルがリストされており、使用を試みて最終的に使用します。
素晴らしい「ハイパフォーマンス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
mysql --verbose --help | less
を実行すると、11行目でどの.cnf
ファイルが検索されるかがわかります。
mysql --print-defaults
を実行して、使用する設定値の方法を示すこともできます。これは、どの設定ファイルがロードされているかを特定するのにも役立ちます。
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
mysqld --help --verboseは危険です。インスタンスを実行するためにpidfileを簡単に上書きできます! --pid-file = XYZで使用します
ああ、実行中のインスタンスが複数ある場合、実際には使用できません。デフォルト値のみが表示されます。
それについての本当に良い記事:
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「デフォルトオプション」
私はこれが本当に便利だと感じました:
Control Panel -> Administration Tools
の下のMySQLプロセスを見つけますProperties
を選択しますPath to executable
をクリックして選択し、my.ini/my.cfg
へのパスが含まれているかどうかを確認します一部のサーバーには、複数のMySQLバージョンがインストールおよび構成されています。以下のUnixコマンドで実行されている正しいバージョンを扱っていることを確認してください。
ps -ax | grep mysql
macを実行している場合にのみ、これは次の方法でも実現できます。
Sudo dtruss mysqld 2>&1 | grep cnf
サービスとしてmysqlを使用してWindowsサーバーを実行している場合、実行している設定ファイルを見つける簡単な方法は、サービスコントロールパネルを開き、mysqlサービス(私の場合は「MYSQL56」)を見つけ、右クリックしてプロパティをクリックすることです。次に、ここから「実行可能ファイルへのパス」を確認できます。これには、構成ファイルの場所を指すdefaults-file
スイッチが必要です。
Windowsを使用している場合は、Sysinternals procmon を使用できます。それを開き、このようなフィルター設定を構成し、「追加」をクリックします。これで、procmonはmysqldを監視します。
ここで、通常どおりmysqlサーバーを起動します。 Procmonはmysqlのバックグラウンド操作をキャプチャします。 「my」を検索します。 procmon結果ペインに次のようなものが表示されます。
Mysqlが構成ファイルのリストを順番に検索することは明らかです。私の場合、C:\mysql-5.7.19-winx64\my.cnf
が正常に見つかったため、これを使用しています。