使用mysqli连接的phpmyadmin,但使用mysqli的php出错

使用mysqli连接的phpmyadmin,但使用mysqli的php出错,php,mysql,sockets,mysqli,Php,Mysql,Sockets,Mysqli,这简直快把我逼疯了!我得到了经典的“无法通过socket'/var/run/mysql4d/mysql4d.sock'(13)连接到本地MySQL服务器” 到目前为止,我所了解到的一切都告诉我,我的设置应该是正常的(例如,在php.ini和my.cnf中定义套接字,等等)。更糟的phpmyadmin与我在自己的php中使用的un/pw相同。很明显,连接是可能的,但我把它搞砸了 我尝试从phpmyadmin反向工程连接,但在几个小时后由于太复杂而放弃了 有人能提供一些建议吗 我的配置:Ubuntu

这简直快把我逼疯了!我得到了经典的“无法通过socket'/var/run/mysql4d/mysql4d.sock'(13)连接到本地MySQL服务器”

到目前为止,我所了解到的一切都告诉我,我的设置应该是正常的(例如,在php.ini和my.cnf中定义套接字,等等)。更糟的phpmyadmin与我在自己的php中使用的un/pw相同。很明显,连接是可能的,但我把它搞砸了

我尝试从phpmyadmin反向工程连接,但在几个小时后由于太复杂而放弃了

有人能提供一些建议吗

我的配置:Ubuntu9.10(Karmic)、Apache2.2、PHP5.2.6、MySQL 4.1.22(出于遗留应用程序的原因)

my.cnf(/var/lib/mysql4/my.cnf):

[客户]
端口=3306
socket=/var/run/mysql4d/mysql4d.sock
[mysqld]
端口=3306
socket=/var/run/mysql4d/mysql4d.sock

php.ini(/etc/php5/apache2/php.ini):

[MySQL]
mysql.default_socket=/var/run/mysql4d/mysql4d.sock
[MySQLi]
mysql.default_socket=/var/run/mysql4d/mysql4d.sock

顺便说一句,使用mysql而不是mysqli也有同样的问题

编辑: 我应该提到,我在ubuntu默认安装php&mysql的同时安装了mysql4,以便与遗留应用程序一起使用,正是这个安装让我在连接时遇到了麻烦。我试过这个:

ini_set('mysql.default_socket','/var/run/mysql4d/mysql4d.sock')

现在连接通过了,但是所有查询都返回空集。(沮丧地哭泣)
这听起来像是
/var/run/mysql4d/mysql4d.sock
中的权限问题。您以什么用户的身份运行此操作?文件系统级别的权限是否正常


如果你在谷歌上搜索错误消息,你会发现很多人都有这个问题,这总是一个权限问题,有时是由于激活了一个。检查一些可能的解决方案。

我可能错了,但错误13“权限被拒绝”不是吗?是不是因为你没有权限访问这个插座?嘿,佩卡,谢谢你的提示!但是我的机器上没有安装selinux。唉,线程上没有任何有用的东西。如果这是一个权限问题,那么,也许我的apache.conf写得很糟糕……嗯,太糟糕了!这个套接字真的存在吗?你检查过它的权限了吗?允许Apache用户访问它吗?是的,套接字存在:srwxrwxrwx 1 mysql4 mysql4 0 2010-01-01 14:15/var/run/mysql4d/mysql4d.sock必须允许Apache访问它,否则phpmyadmin将无法工作。好的。是否可以选择绕过插座?如果是,请尝试连接到127.0.0.1,而不是本地主机(请参阅为什么中的“注意事项”)。也许这会有帮助。我现在休息到明天。祝你好运啊哈!我尝试在mysqli中使用tcp/ip而不是mysql,但它突然开始工作了!mysqli_connect('127.0.0.1',$un,$pw,$db,3306);它不适用于mysql_connect(这很有趣,因为文档在mysql_connect页面上提到了它,但在mysql_connect页面上没有提到)。谢谢你的帮助,佩卡!