我已经在我的 VPS IP 上安装了 MySQL,并发出了以下命令:
mysql> GRANT ALL PRIVILEGES ON . TO 'root'@'%'IDENTIFIED BY 'passwd' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
service mysql restart
现在我想从远程机器上用我的 VPS IP 登录 MySQL。
mysql -h vpsip -P 3306 -u root -ppasswd
ERROR 2003 (HY000): Can't connect to MySQL server on 'vpsip' (111)
为什么无法登录?如何从远程机器连接到 MySQL?
无法连接的原因可能有多种:
mysql 服务器未在公共接口上侦听。通过注释以下行(或将绑定地址设置为相应的公共接口)确保您正在收听公共 IP
MySQL 未在 3306 端口中运行。连接到正确的端口或使用以下命令重新配置端口:
您可以检查 mysql 是否在战斗端口中侦听,正确的接口与:
MySQL 无法成功启动 - 易于检查,尝试本地连接(使用 ssh)或检查它是否正在运行:
您的 VPS 或您的提供商可能在您的服务器或数据中心上激活了防火墙,或者在 NAT 上运行,阻止来自服务器/网络外部的传入连接。您必须禁用主机网络,连接到与服务器的正确私有 ip 对应的公共 ip,或者在控制面板中配置端口。
如果由于某种原因您仍然无法直接访问 mysql(或者您不想公开端口,我建议这样做),您可以使用 ssh 对其进行隧道化,如下所示: