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服务器的configuration,但是为什么在不同位置有两个my.cnf ,不能把这个内容合并到一个my.cnf中? 什么是单独my.cnf MySQL服务器的目的是什么?

Ubuntu MySQL包在/etc/mysql/my.cnf创build了configuration文件,所以如果你有一个/etc/my.cnf文件,这是因为你可能使用了一个包(可能来自multiverse)或者一个工具,创build它。

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

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

最终,这两个configuration选项都不是特别危险,所以你可以安全地将它们合并到/etc/mysql/my.cnf并重新启动MySQL。 虽然你想要关注innodb_buffer_pool_size = 1G因为如果你的MySQL服务变得忙碌,而且你没有很多内存,你的系统内存可能就会变小。

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

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