无法在我的工作开发机器上远程访问MySQL

时间:2015-10-16 16:13:04

标签: php mysql ubuntu ssh tunneling

今天我一直试图从我的家用机器(OSX)访问运行在我的远程工作机器(Ubuntu)上的MySQL,但我没有成功。

在我的工作机器上,我检查过以下内容:

sudo netstat -ntlup | grep mysql

给出

tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      23692/mysqld

nmap告诉我

PORT     STATE SERVICE
3306/tcp open  mysql

并在/etc/mysql/my.cnf我设置bind-address = 0.0.0.0

我还运行以下iptables规则:

iptables -A INPUT -i lo -p tcp --dport 3306 -j ACCEPT
iptables -A OUTPUT -o lo -p tcp --sport 3306 -j ACCEPT

我还能检查什么?

如果有一些公司网络规则阻止了我的MySQL访问,我可以检查什么来找到它?

我能做到这一点的唯一方法就是ssh隧道:

ssh -L 8080:localhost:3306 my_user_name@my_dev_machine_IP

然后如果我做

mysql -h 127.0.0.1 --port=8080 -u root -p

我可以进去。如果我关闭了ssh隧道,那么我无法通过mysql登录,甚至也无法通过telnet remote_IP 3306登录。

但这对我想要的东西没有好处,因为我需要在我的本地机器上运行的PHP代码才能访问远程数据库。

我也(希望暂时)开放了对所有主机/ IP的MySQL数据库的访问权限:

GRANT ALL PRIVILEGES ON *.* TO 'application_username'@'%'
FLUSH PRIVILEGES

感谢任何建议!

1 个答案:

答案 0 :(得分:0)

Ubuntu有uwf - 在某些vps安装中,它默认启用。所以,如果是,请sudo ufw allow 3306。我正在写这个jsut以防你从你的工作机器运行nmap。如果nmap显示从mac运行结果,那么这不适用。