回答:
3つのオプション
オプション1:mysqlクライアント内から
mysql -uroot -A -e"SHOW GLOBAL VARIABLES;" > MySQLCurrentSettings.txt
これにより、すべてのオプションがテキストファイルにキャプチャされます。
オプション2:Linuxコマンドラインから
ps -ef | grep mysqld | grep -v grep
これにより、mysqld_safeから設定されたmysqldで開始されたオプションが表示されます。
オプション3:サーバーに直接質問する
mysqld --help --verbose
「mysqld --help --verbose」画面の下部に、my.cnfからロードされた、またはデフォルト設定のmysqldの現在の設定が表示されます。
これらの指示は、centos 7.1のストックmariadb向けです。
ここでは、現在または将来のマシンの現在の設定を新しいインストールにバックアップまたは複製する方法を説明します。
設定のコピー元のマシンで、次を実行できます。
/usr/libexec/mysqld --help --verbose > mysql_current_settings.txt
別のマシンにmariadb-serverをインストールして実行できます:
/usr/libexec/mysqld --help --verbose > mysql_default_settings.txt
次に、両方のファイルを1つのディレクトリに配置します。この例では、「/ a /」です。
次に実行します:
comm -3 <(sort /a/mysql_current_settings.txt) <(sort /a/mysql_default_settings.txt)
出力がない場合、2つのファイルは同一です。つまり、両方のマシンのすべての設定がデフォルトになっています。
出力がある場合、一部の行はインデントされず、一部の行はインデントされます。
インデントされていない行は、最初のファイル(ここでは/a/mysql_current_settings.txt)にのみ存在します。
インデント行は、2番目のファイル(ここでは/a/mysql_default_settings.txt)にのみ存在します。
これで、mysqldを起動したコマンドラインで設定されたいくつかの設定を除き、すべての設定がわかりました。これらの設定は、/ etc / my.cnf、/ etc / my.cnf.d / *ファイル、カスタムスクリプト、またはエイリアスなどから取得できます。いずれの場合も、次のコマンドで確認できます。
ps -ef | grep mysqld
これで、新しいインストールで古いインストールとして構成するために変更する必要がある設定が非常に少なくなりました。
ここで、他の詳細について説明します。
centos 7.1では、次のコマンドは、mysqldを起動したコマンドラインで設定される一部の設定を除き、現在のすべての設定を表示します。
/usr/libexec/mysqld --help --verbose
合計で、以下を示します。
最初の部分では、「mysqld」の開始時に最初のパラメーターとして使用できる設定。
2番目の部分では、コンパイル時に設定が行われます。
3番目の部分では、現在の設定。
出力の最後の行に「実行中のMySQLサーバーが使用している値を確認するには」と入力しても、次のように入力します。
mysqladmin variables -uroot -p
このコマンドは、/ etc / my.cnfで変更してmysqlを再起動しても、fe、bind-addressを表示しません。
また、次のコマンドは「bind-address」ではなく多くの設定を表示します。
mysql -uroot -p -e"SHOW VARIABLES;"
centos 7.1では、mysqldは$ PATHにないことに注意してください。
現在のmy.cnfを生成する私のお気に入りの方法は次のとおりです。
{ echo -e "# MYSQL VARIABLES {{{1\n##\n# MYSQL `mysql -V|sed 's,^.*\(V.*\)\, for.*,\1,'` - By: `logname`@`hostname -f` on `date +%c`\n##"; for l in {a..z}; do echo '#'; mysql -NBe "SHOW GLOBAL VARIABLES LIKE '${l}%'" | sed 's,\t,^= ,' | column -ts^ | tr "\n" '@' | eval $(echo "sed '" "s,@\("{a..u}{a..z}"\),\n\n\1,;" "'") | eval $(echo "sed '" "s,@\(innodb_"{a..z}{a..z}"\),\n\n\1,;" "'") | tr '@' "\n" | sed 's,^,# ,g'; done; echo -e "#\n##\n# MYSQL VARIABLES }}}1"; } | tee ~/mysql-variables.log
ただし、これはMac OS Xでは確実に機能しません。
これにより、my.cnfにインポートできるように、コメントアウトされたクリーンな変数ログが出力されます。
元のソース:http : //www.askapache.com/mysql/view-mysql-variables-my-cnf.html
mysqld -V|sed 's,^.*\(V.*\)\ for.*,\1,'です。私はクライアントとサーバーの両方が一緒にインストールされていると思うので、それは重要ではありません。{{{1and の目的は何1}}}ですか?