我正在尝试连接到 MariaDB SQL 数据库,但不确定如何表达我的主机名(它看起来根本不像 URL)。我的数据库托管服务告诉我,我的主机名是 spike-codes-db-19d5bab155-mariadb
,但是当我尝试将其与其他变体一起使用时(见下文),我收到一条错误消息,告诉我 不知道这样的主机。
我的 PHP 脚本由 Heroku 托管,但下面的错误日志记录来 self 的本地主机测试服务器。 SQL 数据库是 MariaDB,由 unubo.com 托管,我知道它一切都很好。
我尝试过的主机名:
spike-codes-db-19d5bab155-mariadb
spike-codes-db-19d5bab155-mariadb:3306
spike-codes-db-19d5bab155-mariadb-master-0
mariadb://[用户]:[密码]@spike-codes-db-19d5bab155-mariadb:3306
括号用于编辑数据。
请不要将其标记为重复,我已经检查了所有其他问题,这些问题返回相同的错误代码,但没有一个解决我的问题(大多数解释如何修复语法,但我不确定我的问题)主机名,其他问题都没有涵盖,全部使用“localhost”作为服务器名称)。
<?php
$hostname = "spike-codes-db-19d5bab155-mariadb";
$username = get_env("db_user");
$password = get_env("db_pass");
$db = get_env("db_name");
$conn=mysqli_connect($hostname,$username,$password,$db);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT * FROM reviews";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo $row;
}
} else {
echo "0 results";
}
mysqli_close($conn);
?>
预期:返回数据库信息。
错误消息:
Warning: mysqli_connect(): (HY000/2002): php_network_getaddresses: getaddrinfo failed: No such host is known. in [file_location] on line 8
Connection failed: php_network_getaddresses: getaddrinfo failed: No such host is known.```
最佳答案
<?php
opcache_reset();
?>
我也有同样的问题。我尝试了很多解决方案,但没有一个有效。这对我来说是一份工作。 您需要在 CLI 上重置 Opcache。使用上面的代码创建一个文件,例如..clear.php 并运行它。然后再次尝试运行您的原始代码。它会解决这个问题。
关于php - 有没有办法更改我的主机名来修复 "php_network_getaddresses: getaddrinfo failed: No such host is known."?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57830416/