是否有 MySQL 命令来定位 my.cnf
配置文件,类似于 PHP 的 phpinfo()
定位其 php.ini
的方式?
原文由 robinmag 发布,翻译遵循 CC BY-SA 4.0 许可协议
是否有 MySQL 命令来定位 my.cnf
配置文件,类似于 PHP 的 phpinfo()
定位其 php.ini
的方式?
原文由 robinmag 发布,翻译遵循 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 许可协议
7 回答5.3k 阅读
5 回答3.2k 阅读✓ 已解决
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
3 回答3.6k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
没有内部 MySQL 命令来跟踪它,它有点太抽象了。该文件可能位于 5 个(或更多?)位置,并且它们都是有效的,因为它们加载级联。
这些是 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