我正在尝试在Ubuntu 16.04计算机上本地测试PHP网站,但是使用mysqli_connect()
连接到MySQL数据库时遇到了问题。
我有运行mod_php7.0
的Apache 2.4。
我安装了Ubuntu软件包php7.0-mysql
。
访问与网站位于同一目录中的本地主机地址的php.info()
文件表示我的php.ini文件为/etc/php/7.0/apache2/php.ini
。
在该文件中,我从;extension=php_mysqli.dll
行中删除了注释。
我要访问的文件包含该行
$con=mysqli_connect("localhost","db_user","db_password","db_name");
当我尝试访问该网站时,出现错误消息
Warning: mysqli_connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known"
参考上一行。
我让MySQL在本地运行,并定义了给定的用户,密码和数据库。我尝试使用127.0.0.1
代替localhost
,但是错误是相同的。
错误似乎是PHP无法与MySQL建立本地连接。我如何找出问题所在?
编辑为了提供更多背景信息,我正在尝试创建一个在其生产/开发服务器上工作的网站的localhost版本。据我所知,我已经重新创建了服务器设置的所有相关方面,但是显然我错过了一些东西。
本地设置和生产/开发版本之间的最大区别是,我在本地具有PHP7,但在生产/开发上具有PHP5.5.9。在这一点上,我最好的猜测是,这种差异是造成localhost故障的原因,但是我对PHP的了解还不足以缩小可能的范围。
答案 0 :(得分:1)
使用以下命令连接到本地主机上的MySQL数据库。
<?php
$servername = "localhost";
$username = "root";
$password = "mysql-password";
$dbname = "database-name";
$conn = mysqli_connect($servername, $username, $password,$dbname);
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
?>