我在 Microsoft Azure VPS(2012 服务器)上安装了 MySQL 5.5。我创建了一个用户帐户,告诉它允许任何主机,并EndPoint
在端口 3306 上创建了一个。我可以使用 RDP 远程访问 VPS 并顺利进行本地连接。
我还允许 MySQL 安装程序在 Windows 中创建所需的防火墙规则,并且它似乎是有效的(允许传入 TCP 到端口 3306)。
我错过了什么?
错误是“无法连接到 MySQL 服务器 (4) 2003”
而且,我似乎找不到 MySQL 日志文件。
另外,这是我的 mysql.user 表的转储:
Host User Password
-------------------------------------------------------------
localhost root *0735EF2BBDF0D50FB780E9B58198D7260991E311
127.0.0.1 root *0735EF2BBDF0D50FB780E9B58198D7260991E311
::1 root *0735EF2BBDF0D50FB780E9B58198D7260991E311
% cbmeeks *3CA067E806B5BB2DF87A89D517BBAF80DD22C27A
都不是cbmeeks
,或者root
远程工作。
答案1
您需要在mysql.user
表中包含主机特定的条目。
mysql> use mysql;
Database changed
mysql> select Host,User,Password from user;
+------------+------+-------------------------------------------+
| Host | User | Password |
+------------+------+-------------------------------------------+
| localhost | root | *62395BB52702DE50773EBF629DD4AE90F07FFD94 |
| sgeorge-mn | root | |
| 127.0.0.1 | root | *62395BB52702DE50773EBF629DD4AE90F07FFD94 |
| ::1 | root | |
| localhost | | |
| sgeorge-mn | | |
| localhost | suku | *EAF5C8242B88A14545BB61062D64CA5207DD1A37 |
+------------+------+-------------------------------------------+
7 rows in set (0.01 sec)
因此,关注我创建具有远程访问权限的用户。
[添加]如果您已经有这样的用户,请尝试按照我
答案2
我讨厌回答自己的问题,但解决方案就在我面前。我做了所有逻辑尝试,最终发现问题确实是 Windows 防火墙。
我知道,阻止端口显然会阻止它远程连接。
这是我首先查看的地方。但是我没有注意到的是,入站规则设置为“域”。我将其设置为“公共”,它起作用了。
我不是 Windows 防火墙规则方面的专家,但希望这可以对某些人有所帮助。
由于我将使用 Azure VPS 连接到另一个 Azure VPS,因此可能值得一提的是,应该调整防火墙规则以仅允许来自允许的 VPS 的连接。但这是另一个话题。希望这能帮助其他人。
感谢@Suku 向我指出帮助页面。
答案3
我遇到了同样的令人头痛的错误(错误是“无法连接到 MySQL 服务器 (4)”)大约 3 周,最后我发现我的问题是基于防火墙规则。
解决方案是要求我的托管服务提供商以 OUT 方式打开端口 3306。
不要期望这是一个万全之策,因为配置中需要考虑很多事情,但是嘿!我终于明白了,这全是关于我的提供商的防火墙。
希望这对某人有帮助。