如何找到 MySQL my.cnf 位置

新手上路,请多包涵

是否有 MySQL 命令来定位 my.cnf 配置文件,类似于 PHP 的 phpinfo() 定位其 php.ini 的方式?

原文由 robinmag 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 763
2 个回答

没有内部 MySQL 命令来跟踪它,它有点太抽象了。该文件可能位于 5 个(或更多?)位置,并且它们都是有效的,因为它们加载级联。

  • /etc/my.cnf
  • /etc/mysql/my.cnf
  • $MYSQL_HOME/my.cnf
  • [数据目录]/my.cnf
  • ~/.my.cnf

这些是 MySQL 查看的默认位置。如果它找到多个,它将加载它们中的每一个,并且值会相互覆盖(我认为按照列出的顺序)。此外, --defaults-file 参数可以覆盖整个事情,所以……基本上,这是一个巨大的痛苦。

但由于它如此令人困惑,它很有可能只是在 /etc/my.cnf 中。

(如果您只想查看值: SHOW VARIABLES ,但您需要权限才能这样做。)

运行 mysql --help 你会看到:

Default options are read from the following files in the given order: /etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf

在此处输入图像描述

原文由 tadamson 发布,翻译遵循 CC BY-SA 4.0 许可协议

您实际上可以“请求” MySQL 以获取它搜索 my.cnf(或 Windows 上的 my.ini)的所有位置的列表。虽然它不是 SQL 查询。而是执行:

 $ mysqladmin --help

或者,在 5.7 之前:

 $ mysqld --help --verbose

在第一行中,您将找到一条消息,其中包含它要查找的所有 my.cnf 位置的列表。在我的机器上是:

 Default options are read from the following files in the given order:
/etc/my.cnf
/etc/mysql/my.cnf
/usr/etc/my.cnf
~/.my.cnf

或者,在 Windows 上:

 Default options are read from the following files in the given order:
C:\Windows\my.ini
C:\Windows\my.cnf
C:\my.ini
C:\my.cnf
C:\Program Files\MySQL\MySQL Server 5.5\my.ini
C:\Program Files\MySQL\MySQL Server 5.5\my.cnf

但是请注意 ,这些位置中的任何一个都可能没有 my.cnf 文件。因此,您可以自己创建文件 - 使用 MySQL 发行版提供的示例配置文件之一(在 Linux 上 - 请参阅 /usr/share/mysql/*.cnf 文件并使用适合您的文件 - 将其复制到 /etc/my.cnf 然后根据需要进行修改)。

另外,请注意, 还有一个命令行选项 --defaults-file 可以定义 my.cnf 或 my.ini 文件的自定义路径。例如,Windows 上的 MySQL 5.5 就是这种情况——它指向数据目录中的 my.ini 文件,该文件通常不会以 mysqld --help --verbose 列出。在 Windows 上 - 查看服务属性以了解您是否属于这种情况。

最后,检查 https://dev.mysql.com/doc/refman/8.0/en/option-files.html - 那里有更详细的描述。

原文由 Tim 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题