是的,你不能这样连接!
@PLB 和 @jammypeach mysqli 在 v4.1 之后,他正在使用 v3 :)
如果您确实想提供帮助,请阅读规格!
您无法连接,因为您的套接字文件有点错误。我现在记得老RH以前也有过这个问题。
您的套接字可能是 /var/mysql/mysql.sock 或 /tmp/mysql.sock 但一个或多个应用程序正在寻找另一个。
如果你的是 /tmp/mysql.sock 但没有 /var/mysql/mysql.sock 你应该:
cd /var
mkdir mysql
cd mysql
ln -s /tmp/mysql.sock mysql.sock
如果您有 /var/mysql/mysql.sock 但没有 /tmp/mysql.sock 那么:
cd /tmp
ln -s /var/mysql/mysql.sock mysql.sock
您需要权限才能进行更改。如果需要的话,只需在上述命令之前执行 sudo 即可!
另一个解决方案(更简单):
创建文件并调用 phpinfo();查找“mysql.default_socket”;或“pdo_mysql.default_socket”;
打开 My.ini 或 My.cnf 找到套接字值,例如套接字=/tmp/mysql.sock
打开 php.ini 文件(也可以在 phpinfo() 页面上找到“加载的配置文件”),并将所有出现的错误套接字位置更改为 MySQL 中的正确套接字位置。
另一个解决方案(最简单):
PDO 的 DSN:
mysql:unix_socket=/tmp/mysql.sock;dbname=...
mysql_连接:
$db = mysql_connect('localhost:/tmp/mysql.sock', ...
您的系统在安全性方面确实很可怕,如果您托管敏感数据,我会升级到最新版本。
- - 更新 - -
啊啊 PHP 5.0 和 MySQL 3.23 :)
PHP 5 打包了一个 mysql 客户端,无法连接低于 4.1 版本的 MySQL 数据库。
从版本 4.1 开始,MySQL 使用一种新的密码哈希方法,该方法与 4.1 之前的数据库不兼容。您的配置连接到的服务器版本为 3.23。所以你需要给自己安装一个更高版本的MySQL。抱歉,您的情况没有其他实用的解决方案。如果我是你,我会升级整个系统并安装最新的操作系统版本,如果必须的话,我会选择 Debian 以及 PHP 和 MySQL 的最新稳定版本。