正在使用错误的权限创建mysql.sock。什么定义了套接字的权限?

时间:2017-05-25 14:03:29

标签: mysql sockets

在安装了mariadb-server的简单新安装(RHEL7)上,启动mariadb在/ var / lib / mysql中创建一个套接字文件:

srwxrwxrwx。 1 mysql mysql 0 May 25 08:23 mysql.sock

我们的本地安装过程会移动此目录并在/ var / lib / mysql中设置符号链接。这种方法运行良好多年,但在RHEL7中进行当前维护,启动mariadb现在创建mysql.sock文件而无需为组或其他人写入,从而无法正常连接到数据库。在受影响的系统上,套接字现在看起来像:

srwxr-xr-x + 1 mysql mysql 0 May 25 08:30 mysql.sock

如何以及在何处设置套接字的权限?我们如何更改设置?

2 个答案:

答案 0 :(得分:1)

在您(重新)启动mysql服务器时创建套接字文件时设置权限。所以我猜测默认权限是在创建套接字的代码内部。

您的套接字文件似乎在ACL控制(+)下,我对此知之甚少,但您是否尝试过chmod a+w mysql.sock

答案 1 :(得分:0)

问题在于目录和文件上的ACL(尽管它们应该授予对文件的访问权限,但显然,套接字的处理方式不同)。

删除所有ACL,在这种情况下,无论如何都不应该在mariadb的数据目录中修改任何内容,因此这样做没有任何影响,允许使用适当的权限正确创建文件,并且我们能够连接到数据库。因此,解决方案是不将ACL放在目录或文件上。

啊,我们编织的网络是什么......