CentOS 不允许远程 MySQL 连接

CentOS 不允许远程 MySQL 连接

当分配远程 IP 上的用户连接到数据库时,系统提示连接失败。它也无法与 root 连接,所以肯定出了问题。绑定 IP 已关闭,我也尝试禁用 iptables,但仍然无济于事。端口 3306 已转发。

我在 Centos 5.6 上运行,使用 phpmyadmin,但我也尝试通过命令行分配用户并创建一个新的数据库,但仍然不起作用。

已经用谷歌搜索并排除故障几个小时了,毫无结果。

答案1

您的问题描述不清楚。您需要区分由网络相关问题(防火墙阻止端口 3306、绑定地址不正确等)引起的问题,或由无效凭据引起的问题。

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

$ telnet your_server_ip 3306

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

$ mysql -u user -p -h your_server_ip

如果出现access denied错误,您需要确保您使用正确的用户名/密码进行连接。

对于root用户来说,据我所知,默认情况下不允许以以下方式远程连接到 mysql DB root

答案2

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

0.0.0.0

答案3

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

找到[mysqld]并添加以下行:

bind-address = <server's ip address>

保存并重新启动mysql服务器。

/etc/init.d/mysqld restart

答案4

您可以尝试以下方法,

  1. 通过 SSH 连接到运行 MySQl 的服务器,确保您能够从本地服务器以“root”身份登录到 Mysql。

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

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

  4. 以“root”用户身份连接不是一个好的做法,创建一个 Mysql 用户并授予新用户所有权限,以便从密码标识的远程系统连接数据库。

例子:-

GRANT ALL ON *. * TO user@'您的 IP 地址' IDENTIFIED BY '密码';

清除特权;

希望对你有帮助。

谢谢!

相关内容