![无法从外部以管理员身份连接到 mysql](https://linux22.com/image/17386/%E6%97%A0%E6%B3%95%E4%BB%8E%E5%A4%96%E9%83%A8%E4%BB%A5%E7%AE%A1%E7%90%86%E5%91%98%E8%BA%AB%E4%BB%BD%E8%BF%9E%E6%8E%A5%E5%88%B0%20mysql.png)
我有一个专用服务器(CentOS 5.3),但我无法从外部以管理员身份登录 mysql,但是当我在服务器的命令行上时我可以这样做。我假设某个地方有一个设置可以为我提供所需的访问权限,但我不知道在哪里。
答案1
有几个因素,您的问题没有包含足够的信息来了解您面临的是哪些因素。
首先确保您的服务器正在侦听您的网络端口。仅仅监听127.0.0.1
并不会减少它,因为它只允许环回连接到本地主机。你需要听0.0.0.0
bind-address=0.0.0.0
接下来确保您正在使用 TCP 网络。 Mysql 只能使用本地套接字,因此请确保在配置中注释掉这一行:
#skip-networking
完成后,您应该有一个 mysqld 守护进程在监听。你可以这样测试:
# netstat -lntp | grep mysqld
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 2652/mysqld
(请注意,我的示例输出仅在本地主机上侦听!您的示例输出应该使用您的接口 IP 进行读取,或者0.0.0.0
如果这不起作用。)
最后,您需要在 mysql 本身中设置正确的权限。每个用户都有一个允许连接的主机。如果您运行GRANT
语句并且只授予权限ON 'localhost'
或类似的东西,您仍然无法远程登录。您需要包含您想要允许的特定主机或'%'
任何主机。