无法建立远程mysql连接

时间:2013-11-21 17:42:13

标签: mysql

我最近将我的一些网站从一个托管移动到另一个托管,但我决定将数据库保留在旧托管上。

我做了所有步骤:

  1. 将新服务器的IP列入白名单
  2. 将所有dbcon config''localhost''更改为旧服务器IP
  3. 甚至用mysqli改变了过时的''mysql_connect'' 我仍然无法建立数据库连接! 我该如何解决这个问题?我不知道还有什么地方可以看!
  4. 新托管中可能存在PHP的一些问题!

    在PHP设置中,“选择PHP版本”的下拉菜单只有警告:替代品和错误:用户选项。不应该有PHP版本???

1 个答案:

答案 0 :(得分:2)

您可能需要查看MySQL内部的MySQL用户连接。

以下是您的工作:

SELECT user,host FROM mysql.user;

这将显示每个MySQL用户可以从哪里连接。

如果用户有host='%',则该用户可以从任何地方进行连接。

如果用户有host='10.20.30.%',则该用户只能从'10.20.30.%' netblock进行连接。

让我们来看后一种情况:一个特定的网络块。

假设您的新服务器位于netblock 20.30.40.%上。您可能必须转到每个用户并更改mysql.user中的网络阻止。

示例:对于用户myuser.'10.20.30.%',并且您想要更改myuser以从netblock 20.30.40.%访问MySQL,您将登录到DB服务器,连接到mysql as root@localhost,并执行此操作:

UPDATE mysql.user SET host='20.30.40.%' WHERE host='10.20.30.%';
FLUSH PRIVILEGES;

这将使用新的netblock更新每个用户的主机列。

您可以随时使用GRANT command而不是像我刚刚建议的那样黑客攻击。

如果您无法以任何方式更改mysql.user,则可能需要请求数据库主机提供商为您执行此操作。

试一试!!!