我们失去了我们的my.cnf文件,并想知道是否有办法从当前正在运行的mysql实例中导出一个副本。
谢谢!
三(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'显示的底部,你会看到当前的设置mysqld从my.cnf加载或默认。
这些说明是针对centos 7.1上的stock mariadb。
下面介绍如何将机器的当前设置备份或复制到现在或将来的新安装。
在我们想要复制设置的机器上,我们可以运行:
/usr/libexec/mysqld --help --verbose > mysql_current_settings.txt
在另一台机器上,我们可以安装mariadb-server并运行:
/usr/libexec/mysqld --help --verbose > mysql_default_settings.txt
然后我们把这两个文件放到一个目录中,在这个例子中是“/ a /”。
然后我们运行:
comm -3 <(sort /a/mysql_current_settings.txt) <(sort /a/mysql_default_settings.txt)
如果没有输出,那么这两个文件是相同的。 这意味着两台机器上的所有设置都处于默认状态。
如果有一些输出,那么一些行将不缩进,而一些行将缩进。
非注册行只出现在第一个文件中,这里是/a/mysql_current_settings.txt。
indentend行只出现在第二个文件中,这里是/a/mysql_default_settings.txt。
现在我们知道所有设置,除了在启动mysqld的命令行中设置的一些设置外。 这些设置可能来自/etc/my.cnf或/etc/my.cnf.d/*文件,或者自定义脚本或别名等。无论如何,我们可以使用以下命令查看它们:
ps -ef | grep mysqld
现在我们知道在新安装中必须更改的很less的设置才能将其configuration为旧的。
这里遵循一些其他的细节。
在centos 7.1上,以下命令显示当前所有设置,除了在启动mysqld的命令行中设置的一些设置:
/usr/libexec/mysqld --help --verbose
总的来说,它显示:
在第一部分中,当我们启动“mysqld”之后,我们可以用作第一个参数的设置;
第二部分是编译时设置的设置;
第三部分是当前的设置。
即使输出的最后一行显示:要查看正在运行的MySQL服务器正在使用的值,请input:
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,这不起作用。
这将输出一个干净的variables日志,注释掉,准备导入到my.cnf中。
原始来源: http : //www.askapache.com/mysql/view-mysql-variables-my-cnf.html