是否有命令确定MySQL 5.0当前使用的配置文件?
如果你在Linux上,那么用qazxsw poi启动'mysql',例如qazxsw poi。
在所有其他系统调用中,您会发现类似于:
strace
所以,正如你所看到的......它列出了它试图使用并最终使用的.cnf文件。
使用MySQL Workbench,它将显示在“服务器状态”下:my.ini/my.cfg
对于使用mysql作为服务运行Windows服务器的人来说,找到你运行的配置文件的一个简单方法是打开服务控制面板,找到你的mysql服务(在我的情况下是'MYSQL56'),右键单击并单击属性。然后从这里你可以检查“可执行路径”,它应该有一个指向配置文件所在位置的ps -ax | grep mysql
开关。
如果您使用的是Windows,则可以使用Sysinternals defaults-file
。打开它并配置这样的过滤器设置,然后单击“添加”。现在procmon将监控mysqld。
sudo dtruss mysqld 2>&1 | grep cnf
现在正常启动你的mysql服务器。 Procmon将捕获mysql的后台操作。搜索“我的”。在procmon结果窗格中,您将找到类似以下内容的内容:
摘自梦幻般的“高性能MySQL”O'Reilly书:
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
它将告诉你第11行哪个$ 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
来向您展示它将使用的配置值。这对于识别它正在加载哪个配置文件也很有用。
我在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
另一种方法是使用
.cnf
mysqld --help --verbose很危险。您可以轻松覆盖pidfile以运行实例!与--pid-file = XYZ一起使用它
哦,如果你有超过1个实例运行,你就无法真正使用它。它只会显示默认值。
关于它的文章非常好:
mysql --print-defaults
刚刚对ubuntu进行了快速测试:
110112 13:35:26 [注意]插件'FEDERATED'被禁用。 以给定顺序从以下文件中读取默认选项:/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf~ / .my.cnf
同时还找到了mysqld的--defaults-file选项。如果你在那里指定一个配置文件,那么只使用那个配置文件,无论/ usr / sbin / mysqld返回什么--verbose --help | grep -A 1“默认选项”
我发现这非常有用:
mysqladmin variables
下的Services中找到MySQL进程Control Panel -> Administration Tools
并查看它是否包含Properties
的路径某些服务器安装并配置了多个MySQL版本。确保使用Unix命令处理运行的正确版本:
Path to executable