我正在尝试运行包含MySQL连接的PHP脚本,当我运行命令时,我在终端中收到以下错误:
'Warning: mysqli::__construct(): (HY000/2002): Connection refused'
即使使用PDO,我也会收到错误:
'Fatal error: Uncaught PDOException: SQLSTATE[HY000] [2002] No such file or directory in ...'
我在Mac OS X上运行脚本,我将MAMP作为APACHE / MySQL本地服务器。
我用来运行脚本的命令是:
'php main.php'
,带有PDO的'main.php'文件的内容是:
$db = new PDO('mysql:host=localhost;dbname=test',root,root);
使用mysqli连接器:
$db = new mysqli("localhost", "test", "root", "root");
我尝试使用'127.0.0.1'而不是'localhost',我在两种情况下都会遇到相同的错误。
答案 0 :(得分:-1)
首先,使用localhost
作为域名是not supported in PHP。它将不解析为127.0.0.1
。
第二,即使使用127.0.0.1
也可能无法在具有多个接口或特殊路由规则的服务器中使用。运行mysqlcheck --help
,并获取“主机”字段底部显示的IP地址。例如:
port 3306
host 192.168.1.23
使用MySQL可以识别的IP和端口:
$db = new mysqli("192.168.1.23:3306", "test", "root", "root");