我遇到了一个我自己无法解决的问题。
我正在尝试在我的 VPS 服务器上托管一个网站:
· Debian 9
—MariaDB
-PHP 7.0.19-1
我的网站正在尝试连接到我的数据库(可通过 phpmyadmin 访问),但没有成功。
PHP代码:
<?php
$cfg['db_server'] = 'ipaddress';
$cfg['db_user'] = 'user';
$cfg['db_pass'] = 'password';
$cfg['db_name'] = 'newdb';
$conn = @mysqli_connect ($cfg['db_server'], $cfg['db_user'], $cfg['db_pass']);
$select = @mysqli_select_db ($cfg['db_name'], $conn);
if (!$conn) {
die ('<p class="error">Can't connect to server</p>');
}
if (!$select) {
die ('<p class="error">Can't select db.</p>');
}
?>
在我的网站上我看到“无法连接到服务器”错误。
您能帮我解决这个问题吗?我对 Linux 系统没有太多经验,所以我不知道如何找到解决方案。如果您只是需要更多信息,我会尽快发送给您。
先感谢您
答案1
连接被拒绝意味着您的 MySQL 服务器没有运行,或者没有绑定到您的 PHP 应用程序尝试连接的接口。
您需要将 更改ipaddress
为 MySQL 监听的接口的地址。最常见的是127.0.0.1
或localhost
。
答案2
我会建议阅读文档并使用这个核心部分(几乎)从上述文档中提取,应该可以更详细地告诉你问题是什么
if (!$conn) {
echo "Error: Unable to connect to MySQL." . PHP_EOL;
echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
exit;
}
答案3
如果数据库服务器与网络服务器相同,则尝试将 $cfg['db_server'] = 'ipaddress' 设置为 '127.0.0.1',如果此方法可行,而使用 ip 则不可行,那么问题可能与数据库端或服务器防火墙的权限有关