我正在尝试连接到我用于开发的本地 mysql 服务器
服务器启动正常,但我无法以非 root 用户身份连接到它。
[root@somepc ]# mysql -u [someuser] -p[somepass]
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13 "Permission denied")
作为 root,这可以按预期工作。这样该用户确实有权访问mysql。
mysql -u [user] -p[password]
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 10.1.30-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
当我检查作为我的用户的权限时
stat /var/lib/mysql/mysql.sock
stat: cannot stat '/var/lib/mysql/mysql.sock': Permission denied
对于非 root 用户,这些权限应该是什么?
该问题与套接字文件的权限错误有关
作为 root 我可以看到套接字文件的权限是
所以问题是mysql的目录,如上所示。
我通过让每个人访问来解决这个问题。因为这是我用于开发的本地机器。
在生产机器上,我会考虑 mysql 组的正确用户。
请使用常识并在
[]
上述内容之间替换您需要的任何内容现在可以按预期工作
这个问题的另一个解决方案是在连接时不使用套接字。
您的用户需要获得正确的授权才能连接到服务器。这些中的任何一个都可以工作。
在运行它之前,您需要了解它的安全含义。允许所有主机连接,包括互联网上的任何地方。