【问题标题】:Why can't I connect to a remote MySQL database? [duplicate]为什么我无法连接到远程 MySQL 数据库? [复制]
【发布时间】:2012-10-09 05:52:06
【问题描述】:

可能重复:
how to understand “can't connect” mysql error messages?

我几乎尝试按照我能找到的关于这个主题的所有教程进行操作,但无济于事。我正在尝试通过 PHP 连接到远程 MySQL 数据库,但似乎连接超时或什么的。这是我的 PHP 代码:

$link = mysql_connect('remote-server-ip:3306', $username, $password);
if($link){
    echo "Connected.";
}else{
    echo "Not connected: ".mysql_error();
}

当我浏览到该页面时,它会加载大约 30 秒,然后才会显示:

Warning: mysql_connect(): Can't connect to MySQL server on 'remote-server-ip' (4) in /var/www/vhosts/*****/httpdocs/*****/*****.php on line 6

这是我在远程服务器上为尝试允许此连接所做的操作:

  • 添加了 IPtables 规则以允许来自我的服务器的连接。
  • 设置 my.cnf 以监听所有 TCP 请求
  • 向我的数据库添加了可以从我的服务器 IP 连接的用户

似乎仍然没有任何效果。我真的可以在这里使用一些帮助。

【问题讨论】:

  • 你记得刷新权限吗? (微不足道,但仍然)
  • @DC_:坚持使用被弃用的功能是什么?
  • @EliasVanOotegem 这只是一个测试文件——我通常使用 PDO。
  • 首先,在您的本地 php.ini 中将 default_socket_timeout 设置为 6 秒。30 秒等待时间太长了。 :)
  • @DC_ 这没有任何意义。为什么不坚持您通常使用的方法,而不是使用已弃用的功能来测试?

标签: php mysql firewall remote-access


【解决方案1】:

如果您等待一段时间,则可能无法访问该 ip。首先尝试 ping MySQL 服务器。然后尝试在端口 3306 上 telnet。你应该得到一个连接。然后看看是否可以从 SQL 服务器本身连接到 MySQL,即本地连接。必须先做基础

【讨论】:

    猜你喜欢
    • 2018-03-01
    • 2023-04-01
    • 1970-01-01
    • 2014-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    相关资源
    最近更新 更多