我正在使用mysql数据库,我正在与一些托管公司部署我的数据库,它工作正常,但他们很糟糕,所以我迁移到upCloud。现在我遇到连接数据库并出错的问题:
连接失败:SQLSTATE [HY000] [2002] php_network_getaddresses: getaddrinfo失败:名称或服务未知
$servername = 'localhost';
$username = "root";
$password = "password";
$database = 'dbname';
try{
$conn = new PDO("mysql:host=localhost;dbname=driver", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
我尝试将localhost更改为127.0.0.1,但没有运气,我也尝试在字符串中操作单引号和双引号,但它也没有用。你能告诉我为什么会收到这个错误吗? 我正在Ubonto 16.04中部署这个。
答案 0 :(得分:1)
仔细检查您的数据库连接详细信息(主机,数据库名称,用户名和密码)。
如果它仍然不起作用,那么显然最近在Ubuntu上发现并报告了一个错误, 如果你重新启动服务器就会自行修复。
此处列出了更多详细信息:
在Ubuntu上报告错误: https://bugs.launchpad.net/ubuntu/+source/glibc/+bug/1674733
报告和讨论此问题的另一个StackOverflow链接: PDOException: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known
希望有所帮助:)
修改强>
Ubuntu显然也发布了修复程序:https://www.ubuntu.com/usn/usn-3239-2/
更新您在此页面中列出的Ubuntu和库版本。