【发布时间】:2017-02-07 17:12:12
【问题描述】:
我需要使用 PHP 连接到远程 MySQL 服务器,但出现以下错误:
Warning: mysqli::mysqli(): (HY000/2003): Can't connect to MySQL server on ... (13) in /var/www/html/index.php on line 16
Warning: mysqli::query(): Couldn't fetch mysqli in /var/www/html/index.php on line 17
Fatal error: Call to a member function fetch_assoc() on a non-object in /var/www/html/index.php on line 18
远程服务器防火墙已打开,用户有权从任何主机连接,我可以从本地服务器使用mysql命令行连接,但无法连接PHP。
这里可能有什么问题?
编辑: 已经尝试使用不同的连接代码,但总是相同的错误。
这是最新的:
$mysqli = new mysqli(DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE);
$result = $mysqli->query("SELECT 'Hello, dear MySQL user!' AS msg");
$row = $result->fetch_assoc();
echo $row['msg'];
【问题讨论】:
-
我们应该如何分辨?您没有共享任何连接代码
-
编辑添加连接代码。无论如何已经尝试了不同的代码并且没有工作。这似乎是某处的一些设置,但在 php.ini 上找不到任何可能影响远程 MySQL 连接的内容。
-
用php.net/manual/en/mysqli.connect-error.php glhf 调试它。
-
您可以访问终端吗?尝试运行
mysql -hHOST -uUSER -p,将 host 替换为远程 mysql 主机的 IP,将 USER 替换为您的数据库用户名。 -
尝试添加一些代码来检查连接:
if ($mysqli->connect_errno) { printf("Connect failed: %s\n", $mysqli->connect_error); exit(); }