【发布时间】:2010-12-31 15:06:21
【问题描述】:
这快把我逼疯了!我得到了经典的“无法通过套接字'/var/run/mysql4d/mysql4d.sock' (13) 连接到本地 MySQL 服务器”。
到目前为止,我发现的一切都告诉我我的设置应该没问题(例如,在 php.ini 和 my.cnf 中定义套接字等)。更糟糕的是... phpmyadmin 与我在自己的 php 中使用的相同 un/pw 一起工作。所以显然可以连接,但我搞砸了
我尝试从 phpmyadmin 对连接进行逆向工程,但几个小时后因为过于复杂而放弃了它。
谁能给点建议?
我的配置:Ubuntu 9.10 (Karmic)、Apache 2.2、PHP 5.2.6、MySQL 4.1.22(出于遗留应用的原因)。
my.cnf (/var/lib/mysql4/my.cnf):
[客户]
端口 = 3306
套接字 = /var/run/mysql4d/mysql4d.sock
[mysqld]
端口 = 3306
套接字 = /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 时同样的问题,顺便说一句。
编辑: 我应该提到,我已经安装了 mysql4 以及 php 和 mysql 的 ubuntu 默认安装,以便与旧版应用程序一起使用,而我在连接时遇到了麻烦。我试过这个:
ini_set('mysql.default_socket', '/var/run/mysql4d/mysql4d.sock');
现在连接成功,但所有查询都返回空集。 (沮丧地哭泣)
【问题讨论】:
-
我可能错了,但不是错误 13“权限被拒绝”吗?会不会是你没有访问socket的权限?