我正在尝试连接到远程服务器,我将其称为机器A.我已根据说明创建了用户here
CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
WITH GRANT OPTION;
CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
WITH GRANT OPTION;
在机器A上我可以运行命令
mysql -u monty -h website.com -p
这连接到sql没有问题。但是,当尝试从某台机器B执行此操作时,我收到错误:
ERROR 2003 (HY000): Can't connect to MySQL server on 'website.com' (113)
我还注释了以下内容:
# bind-address = 127.0.0.1
在/etc/mysql/my.cnf文件中。仍然没有从远程连接连接的运气。我可能会遗漏任何明显的事情?任何反馈都非常感激。
答案 0 :(得分:3)
我认为这是您需要修复的资格。
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
可能需要
GRANT ALL PRIVILEGES ON *.* TO 'monty'@'website.com'
你会想要确保事情是安全的。 通常最好的做法是尽量不允许外部mysql连接不是来自localhost。
答案 1 :(得分:0)
看起来无法从机器B解析'website.com'地址。请尝试使用机器A的IP地址连接MySQL服务器,即:
mysql -u monty -h x.x.x.x -p
如果可行,请确保正确将机器A的IP地址映射到名称'website.com'。
答案 2 :(得分:0)
我的问题是防火墙阻止了连接。
我正在使用CentOS 7并收到此错误:
mysql -usomeuser -h192.168.194.4 -p somedb
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.194.4' (113)
所以,我安装了telnet尝试并得到了它:
[root@vm3 config]# telnet 192.168.194.4 3306
Trying 192.168.194.4...
telnet: connect to address 192.168.194.4: No route to host
,正如其他人指出的那样,错误113是“没有路由到主机”,这不是MySQL配置问题。
我本可以向世界开放3306,也可以只是向我开放一个IP,但是,我决定创建一个新区域,因为它是针对我的ESX主机的内部“仅主机”网络的。
在运行MySQL(MariaDB)的主机上,我运行了以下防火墙命令:
firewall-cmd --new-zone=esxlocalhost --permanent
firewall-cmd --reload
firewall-cmd --zone=esxlocalhost --permanent --add-source=192.168.194.0/24
firewall-cmd --zone=esxlocalhost --permanent --add-port=3306/tcp
firewall-cmd --reload
完成后,我可以在客户端上连接: mysql -usomeuser -h192.168.194.4 -p somedb 输入密码:
生活很美好