CentOS不允许远程MySQL连接

从远程IP分配用户连接到数据库时,表示无法连接。 它也没有连接到根,所以出了什么问题。 绑定IPclosures,我也尝试禁用iptables,仍然没有骰子。 端口3306被转发。

我在Centos 5.6上运行,使用phpmyadmin,但我也尝试通过命令行分配用户,并创build一个新的数据库,仍然无法正常工作。

现在几个小时一直在search和排除故障,没有骰子。

你的问题描述不清楚。 您需要区分networking相关问题(防火墙拦截端口3306,绑定地址不正确等)导致的问题,或由无效凭证导致的问题。

如果你可以telnet到你的服务器的IP /端口并连接:

 $ telnet your_server_ip 3306 

这意味着mysql服务器正在运行并接受指定IP上的连接。 下一步是尝试使用mysql客户端连接到mysql:

 $ mysql -u user -p -h your_server_ip 

如果您获得access denied错误,您需要确保您连接的用户名和密码正确。

对于root用户,AFAIK不允许(默认情况下)以root身份远程连接到mysql数据库。

你应该绑定到一个IP。 如果你想绑定到机器上的所有IP,你需要绑定到:

 0.0.0.0 

要允许远程mysql连接,你必须编辑你的服务器的/etc/my.cnf

find[mysqld]并添加以下行:

 bind-address = <server's ip address> 

保存并重启mysql服务器。

 /etc/init.d/mysqld restart 

你可以尝试下面的东西,

  1. SSH到您运行MySQl的服务器,确保您是否能够从本地服务器以“root”身份login到Mysql。

  2. 仔细检查Mysql端口3306是否正在侦听。

  3. 查看IPTABLE是否设置为允许Mysql入站连接,否则您可以停止IPTABLES服务,并尝试从远程系统连接MySQL服务器。

  4. 以“root”用户身份进行连接并不是一个好习惯,请创build一个Mysql用户并授予新用户的所有权限,以便将该数据库从由密码标识的远程系统连接起来。

例:-

全部开启*。 *至用户@'您的IP地址'由“密码”标识;

FLUSH PRIVILEGES;

希望这会帮助你。

谢谢!