尝试在 osx mavericks 上安装 wordpress(内置 apache+php 和 homebrew mysql)。
mysql -u root # connects
php -r 'var_dump(mysql_connect("localhost", "root", ""));' # doesn't connect
网络搜索显示,mysql 通过 unix 套接字连接到“localhost”,但通过网络套接字连接到环回 ip 127.0.0.1。
php -r 'var_dump(mysql_connect("127.0.0.1", "root", ""));' # connects!
为什么我不能从 php 通过 localhost 连接到 mysql??
答案1
“网络搜索显示 mysql 通过 unix 套接字连接到‘localhost’”
因为 PHP 正在尝试进行一些优化,这会导致意想不到的效果。您的 MySQL 实例正在侦听 TCP 端口 3306 上的连接。PHP 正在尝试连接到文件系统上的 UNIX 套接字。