gpt4 book ai didi

MySQL 没有在 Ubuntu 16.04 上获取 5.7.13 中的符号链接(symbolic link) cnf 更改

转载 作者:行者123 更新时间:2023-11-30 22:12:28 25 4
gpt4 key购买 nike

编辑:我可能已经找到可能是问题的一部分,在底部进一步编辑。

我有一个运行 mysql 的新服务器设置,一切似乎都没有问题。除了每当我使用 show variables 时,我在 .cnf 文件中看到的配置设置都没有显示,而显示的似乎是一般默认值。所以它会出现虽然我可以很好地使用 mysql,但设置都是默认值。

我想弄清楚为什么我的 .cnf 没有被使用。我已经采取了许多步骤来检查它是否确实正在加载,这些步骤如下所示。一旦我确定它正在加载,我就不知道如何解释为什么我的设置没有被使用。任何帮助将不胜感激。

我的cnf文件的位置是这样的:

/etc/mysql/mysql.conf.d/mysqld.cnf

我已尝试验证以下内容正在使用:

sudo/usr/sbin/mysqld --verbose --help | grep -A 1 “默认选项”

Default options are read from the following files in the given order:

/etc/my.cnf /etc/mysql/my.cnf ~/.my.cnf

/etc/my.cnf不存在

/etc/mysql/my.cnf/etc/alternatives/my.cnf

的符号链接(symbolic link)

/etc/alternatives/my.cnf/etc/mysql/mysql.cnf

的符号链接(symbolic link)

/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

的符号链接(symbolic link)

/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)

最佳答案

这是由apparmor引起并解决的

Ubuntu comes with something called AppArmor, a kernel-integrated application security system that controls how applications can access the file system. Source: Oracle Article

如果将 .cnf 放在自定义位置,则需要授予 mysql 访问该目录的权限。在我的例子中,我需要使用以下内容编辑此 /etc/apparmor.d/local/usr.sbin.mysqld:

/home/{my_username}/conf/mysqld.cnf r

您还可以使用:

/home/{my_username}/conf/* r

让它访问整个目录。

关于MySQL 没有在 Ubuntu 16.04 上获取 5.7.13 中的符号链接(symbolic link) cnf 更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39639419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com