无法从PHP连接到MySQL:“mysql_connect():没有这样的文件或目录”

4

我无法通过php连接到mysql。在执行mysql_connect()函数时,apache错误日志中会产生[error] [client 127.0.0.1] PHP Warning: mysql_connect(): No such file or directory错误消息。

请查找运行php -m命令时的警告消息:

$ php -m | grep mysql  
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20090626/msql.so' - dlopen(/usr/lib/php/extensions/no-debug-non-zts-20090626/msql.so, 9): image not found in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20090626/php_mysql.dll' - dlopen(/usr/lib/php/extensions/no-debug-non-zts-20090626/php_mysql.dll, 9): image not found in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20090626/php_mysqli.dll' - dlopen(/usr/lib/php/extensions/no-debug-non-zts-20090626/php_mysqli.dll, 9): image not found in Unknown on line 0
mysql
mysqli
mysqlnd
pdo_mysql

并且

$ mysqladmin -h `hostname` --port=3306 version
/usr/local/mysql/bin/mysqladmin: connect to server at 'heapzero.local' failederror: 'Host '192.168.1.36' is not allowed to connect to this MySQL server'

PHP 版本:

$ php --version
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20090626/msql.so' - dlopen(/usr/lib/php/extensions/no-debug-non-zts-20090626/msql.so, 9): image not found in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20090626/php_mysql.dll' - dlopen(/usr/lib/php/extensions/no-debug-non-zts-20090626/php_mysql.dll, 9): image not found in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20090626/php_mysqli.dll' - dlopen(/usr/lib/php/extensions/no-debug-non-zts-20090626/php_mysqli.dll, 9): image not found in Unknown on line 0
PHP 5.3.2 (cli) (built: Aug  7 2010 00:04:41) 
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies

MySQL版本:

mysql --version
/usr/local/mysql/bin/mysql  Ver 14.14 Distrib 5.1.50, for apple-darwin10.3.0 (i386) using readline 5.1

我花了很多时间来修复这个问题。请提供建议!谢谢!


@heapzero - 这个问题最好在Stack Overflow上问。我投票将其移动到那里,请不要重新发布它,如果其他人同意迁移,它应该被转移。 - JNK
这是在哪个平台上?你是如何安装MySQL的?$ mysqladmin -h \hostname` --port=3306 version` 在Snow Leopard上对我来说很好用,但是我的MySQL版本比你低(5.0.51),尽管我使用的是最新的OSX(10.6.4)。 - Matt Gibson
2个回答

8
如果您使用Mac OS X Lion,请尝试将服务器/主机名更改为IP地址。例如,在PHP代码中,使用127.0.0.1代替localhost。请注意不要更改标签格式。

当我使用lampp时,也发生了这种情况,看起来这是由于lampp使用的Unix套接字与分布式mysql使用的套接字之间发生了某种冲突。 - Hola Soy Edu Feliz Navidad

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接