在安装了mariadb的基本新安装(RHEL7)上,启动mariadb将在/var/lib/mysql中创建一个套接字文件:
srwxrwxrwx.1 mysql mysql 0 5月25日08:23 mysql.sock
我们的本地安装过程移动这个目录,并在/var/lib/mysql上设置一个符号链接。这多年来一直运行良好,但在当前维护的RHEL7中,启动mariadb现在可以创建mysql.sock文件,而无需为组或其他人编写,因此无法正常连接到数据库。在受影响的系统上,套接字现在看起来像:
srwxr-xr-x+ 1 mysql mysql 0 5月25日08:30 mysql.sock
套接字的权限是如何和在哪里设置的?我们怎样才能改变环境?
发布于 2017-05-26 19:46:11
问题在于目录和文件上的ACL(虽然它们应该授予对文件的访问权限,但很明显,套接字的处理方式不同)。
删除所有all,在本例中,任何人都不应该在mariadb的数据目录中修改任何内容,因此这样做没有任何影响,允许使用适当的权限正确创建文件,并且我们能够连接到数据库。因此,解决方案是不将ACL放在目录或文件中。
啊,我们织的网真乱.
发布于 2017-05-25 15:34:41
当您(重新)启动mysql服务器时,将在创建套接字文件时设置权限。因此,我猜想默认权限在创建套接字的代码中的某个位置。
您的套接字文件似乎处于ACL控制(+)之下,我对此知之甚少,但您尝试过chmod a+w mysql.sock吗?
https://stackoverflow.com/questions/44182529
复制相似问题