PHP 不使用 MySQL 默认套接字

PHP 不使用 MySQL 默认套接字

我很难理解为什么 PHP 无法localhost作为主机连接。我可以通过执行以下操作来连接:

mysql -uroot -p

而且,通过 Sequel Pro 我可以作为主机连接本地主机。但使用 PHP,我得到:

Warning: mysqli_connect(): (HY000/2002): No such file or directory

我确信这是因为套接字的原因,因为如果我尝试更改为 127.0.0.1 它就可以工作。

为什么主机不工作?

答案1

PHP 正在尝试使用与 MySQL 正在侦听的套接字不同的套接字。

要查看 MySQL 正在侦听哪个套接字,请运行:

 mysqld --verbose --help|grep ^socket

socket /var/run/mysqld/mysqld.sock

要查看 PHP 尝试使用什么套接字,您可以检查脚本的输出<?php phpinfo(); ?>,它是可变的mysqli.default_socket。您可以在文件中更改它php.ini(通常在/etc/php5/apache2/)。

相关内容