我已向root
用户授予了所有权限,但我无法远程访问。我已经允许防火墙访问端口3306,但我无法连接。
我收到错误:your connection attempt failed for user 'root' from your host to server xxx.xxx.x.xx:3306
答案 0 :(得分:0)
在my.cnf文件中查找bind address指令。这将告诉mysql从哪个IP访问。
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 0.0.0.0
0.0.0.0只提供最通用的答案,但出于安全考虑,应替换为特定地址 请注意,执行此操作的安全方法是仅指定一些特定的IP,而不使用通配符。这样只有受信任的客户才能登录。
注意:强> 检查您是否授予将连接该IP(或通配符)权限的用户。如果不是,你必须运行这些:
GRANT ALL privileges ON testDB.* TO 'testUSER'@'IP_Address' IDENTIFIED BY 'testPassword';
FLUSH PRIVILEGES;
将这些命令调整到您的环境
答案 1 :(得分:0)
当你说我的评论是你需要的答案时写出这个答案。
您的root用户可能是'root'@'localhost'
,这意味着它只接受来自localhost的登录。创建'root'@'%'
以允许从任何地方登录。
我建议不要使用%
,除非您确实锁定了权限。但更好的是,使用'root'@'YOUR IP HERE'
!