my.cnf 在服务器目录中,为什么

my.cnf 在服务器目录中,为什么

在我的Ubuntu机器,我已经安装MySQL

我注意到有/etc/my.cnf文件包含内容(只有两行):

innodb_buffer_pool_size = 1G
max_allowed_packet = 512M

虽然也有/etc/mysql/my.cnf内容很长的,例如:

# The MySQL database server configuration file.
...
...

对我来说,看起来两者都是 MySQL 服务器的配置,但是为什么两个配置位于不同的位置,不能将要合并的内容合并到一个 my.cnf 中吗?为 MySQL 服务器my.cnf单独设置的目的是什么?my.cnf

答案1

Ubuntu MySQL 包在中创建配置文件/etc/mysql/my.cnf,因此如果您有一个/etc/my.cnf文件,那是因为您使用的包(可能来自多元宇宙)或工具创建了它。

如果你不确定文件来自哪里,你可以使用dpkg --search file.name下面的示例输出来查看它是否来自包

root@lamp01:~# dpkg --search my.cnf
mysql-common: /etc/mysql/my.cnf

最终,这两个配置选项都不是特别危险,因此您可以安全地将它们合并/etc/mysql/my.cnf并重新启动 MySQL。不过您需要留意,innodb_buffer_pool_size = 1G因为如果您的 MySQL 服务变得繁忙并且您没有太多 RAM,您的系统可能会内存不足。

如果你想微调 MySQL,我建议下载并运行https://github.com/rackerhacker/MySQLTuner-perl

您需要确保在运行之前让 MySQL 服务在正常负载下运行 24-48 小时mysqltuner,因为当它可以在正常/通常负载下分析 MySQL 的各种性能特征时,效果最佳。

相关内容