当分配远程 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
您可以尝试以下方法,
通过 SSH 连接到运行 MySQl 的服务器,确保您能够从本地服务器以“root”身份登录到 Mysql。
仔细检查 Mysql 端口 3306 是否正在监听。
查看 IPTABLEs 是否设置为允许 Mysql 入站连接,否则您可以停止 IPTABLES 服务并尝试从远程系统连接 MySQL 服务器。
以“root”用户身份连接不是一个好的做法,创建一个 Mysql 用户并授予新用户所有权限,以便从密码标识的远程系统连接数据库。
例子:-
GRANT ALL ON *. * TO user@'您的 IP 地址' IDENTIFIED BY '密码';
清除特权;
希望对你有帮助。
谢谢!