Connecting to Remote Server MySQL Issue

孤人 提交于 2020-01-05 04:03:38

问题


I'm attempting to connect to a remote server, which I'll refer to as machine A. I've created a user following the instructions 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;

On machine A I can run the command

mysql -u monty -h website.com -p

This connects to sql with no problem. However, when attempting to do this from some machine B I receive the error:

ERROR 2003 (HY000): Can't connect to MySQL server on 'website.com' (113)

I've also commented out the following line:

# bind-address      = 127.0.0.1

in the /etc/mysql/my.cnf file. Still no luck connecting from a remote connection. Any obvious things that I might be missing? Any feedback as always is very much appreciated.


回答1:


I think it's your GRANT that needs fixing.

GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'

Might need to be

GRANT ALL PRIVILEGES ON *.* TO 'monty'@'website.com'

You're going to want to make sure things are secure though. It's usually best practice to try not to allow outside mysql connects that aren't from localhost.




回答2:


It looks like the 'website.com' address cannot be resolved from the machine B. Please try to connect the MySQL server using the IP address of machine A, i.e.:

mysql -u monty -h x.x.x.x -p

If it will work, please make sure you mapped the IP address of the machine A to the name 'website.com' correctly.




回答3:


My problem was that the firewall was blocking the connection.

I was using CentOS 7 and was getting this error:

mysql -usomeuser -h192.168.194.4 -p somedb
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.194.4' (113)

So, I installed telnet to try and got this:

[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

and as others noted, the error 113 is "No route to host" which is not a MySQL config issue.

I could have just opened 3306 to the world or just the one IP I was connecting from, but instead, I decided to create a new zone since it was for my ESX host's internal "hostonly" network.

On the host running MySQL (MariaDB), I ran these firewall commands:

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

Once that was done, I could connect on the client: mysql -usomeuser -h192.168.194.4 -p somedb Enter password:

And life was good



来源:https://stackoverflow.com/questions/9488740/connecting-to-remote-server-mysql-issue

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!