【问题标题】:Can't access MySQL remotely on my work development machine无法在我的工作开发机器上远程访问 MySQL
【发布时间】:2016-01-15 11:25:17
【问题描述】:

今天我一直在尝试从我的家用机器 (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

感谢您的任何建议!

【问题讨论】:

    标签: php mysql ubuntu ssh tunneling


    【解决方案1】:

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

    【讨论】:

    • 非常感谢@rollingBalls - sudo ufw allow 3306 似乎有所作为!我现在到达ERROR 1045 (28000): Access denied for user 'root'@'192.FOO.BAR.BAZ' (using password: YES)。即使我在我的 Ubuntu 机器上登录 MySQL 并设置GRANT ALL PRIVILEGES ON *.* TO '%'@'%',我仍然会收到此错误。这可能与我的 ISP 设置有关吗?该错误消息中显示的 IP 地址与我从浏览到“whatismyip.com”时获得的 IP 地址不同,尽管它与我在家用 OSX 机器上的ifconfig 输出的utun0 部分看到的匹配。
    • 啊!我刚刚了解到utun0 数据与我的 VPN 连接有关。如果有帮助的话。
    猜你喜欢
    • 1970-01-01
    • 2018-09-19
    • 1970-01-01
    • 1970-01-01
    • 2013-03-17
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 2016-11-25
    相关资源
    最近更新 更多