连接到远程服务器MySQL问题

时间:2012-02-28 19:54:04

标签: php mysql sql-server remote-access

我正在尝试连接到远程服务器,我将其称为机器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文件中。仍然没有从远程连接连接的运气。我可能会遗漏任何明显的事情?任何反馈都非常感激。

3 个答案:

答案 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 输入密码:

生活很美好