编辑:我可能已经找到了问题的一部分,在底部进一步编辑 .
我有一个新的服务器设置运行mysql一切似乎都没问题 . 除非我使用show变量,否则我在.cnf文件中看到的配置设置不会显示,并且显示的是一般默认值 . 因此,虽然我可以正常使用mysql,但设置只是默认设置 .
我试图找出为什么我的.cnf没有被使用 . 我已经采取了一些步骤来检查它是否肯定被加载,这些都在下面列出 . 一旦我确定它正在加载,我就不知道如何解释为什么我的设置没有被使用 . 任何帮助将不胜感激 .
我的cnf文件的位置是这样的:
/etc/mysql/mysql.conf.d/mysqld.cnf
我试图验证这是以下使用的内容:
sudo /usr/sbin/mysqld --verbose --help | grep -A 1 "Default options"
按给定顺序从以下文件中读取默认选项:/etc/my.cnf /etc/mysql/my.cnf~ / .my.cnf
/etc/my.cnf 不存在
/etc/mysql/my.cnf 是 /etc/alternatives/my.cnf 的符号链接
/etc/alternatives/my.cnf 是 /etc/mysql/mysql.cnf 的符号链接
/etc/mysql/mysql.cnf 包含:
!includedir /etc/mysql/conf.d/!includedir /etc/mysql/mysql.conf.d/
etc/mysql/conf.d/ 是一个包含以下内容的目录:
mysql.cnf mysqldump.cnf
mysql.cnf 是空的,所以可能没有做任何事情
/etc/mysql/mysql.conf.d/ 是一个包含以下内容的目录:
mysqld.cnf mysqld.cnf.dpkg-new mysqld_safe_syslog.cnf
mysqld.cnf 是 /home/{my_username}/conf/mysqld.cnf 的符号链接
/home/{my_username}/conf/mysqld.cnf 是我希望它使用的conf文件 .
所以我看不出它应该使用我的配置的问题 .
在第二次尝试验证正在使用此.cnf时,我使用了 strace mysql . 我的文件与上面列出的其他路径一起列出并打开 .
stat("/etc/mysql/mysql.conf.d/mysqld.cnf", {st_mode=S_IFREG|0664, st_size=2262, ...}) = 0
open("/etc/mysql/mysql.conf.d/mysqld.cnf", O_RDONLY) = 4
fstat(4, {st_mode=S_IFREG|0664, st_size=2262, ...}) = 0
read(4, "# Generated by Percona Configura"..., 4096) = 2262
read(4, "", 4096) = 0
close(4) = 0 close(4)
再次看起来它应该使用.cnf文件 .
任何人都可以提供任何洞察力,为什么它不是?
编辑:我刚刚完成 strace mysqld 而不是 strace mysql ,我的.cnf文件出现了权限错误 . 这可能是问题所在 . 但我不明白mysql和mysqld之间的区别可以解释一下吗?
stat("/etc/mysql/mysql.conf.d/mysqld.cnf", {st_mode=S_IFREG|0664, st_size=3218, ...}) = 0
open("/etc/mysql/mysql.conf.d/mysqld.cnf", O_RDONLY) = -1 EACCES (Permission denied)