无法从PHP连接到MySQL:“mysql_connect():没有这样的文件或目录”
问题描述:
我无法通过php连接到mysql。它在PHP中执行mysql_connect()
函数时,会在apache错误日志中产生[error] [client 127.0.0.1] PHP Warning: mysql_connect(): No such file or directory
错误消息。无法从PHP连接到MySQL:“mysql_connect():没有这样的文件或目录”
$ 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版本:
运行php -m
命令时,请找到相应的警告信息
mysql --version
/usr/local/mysql/bin/mysql Ver 14.14 Distrib 5.1.50, for apple-darwin10.3.0 (i386) using readline 5.1
我花了很多时间试图解决这个问题。请建议!谢谢!
答
您的问题可能与“远程访问”有关。你应该尝试编辑mysql的配置。该文件可能被称为my.cnf。
下面是可能会有所帮助的链接: http://www.debianhelp.co.uk/remotemysql.htm
答
如果您使用的是Mac OS X Lion中,尝试改变服务器/主机名到IP地址来代替。
示例:代替localhost
,在PHP代码中使用127.0.0.1
。
+0
在使用lampp时,它也发生在我身上,它看起来和lampp使用的Unix套接字有冲突,而分发mysql使用的套接字 – 2014-10-03 06:05:48
@heapzero - 这可能是更好的问堆栈溢出。我正在投票决定将其迁移到那里,请不要转贴,如果其他人同意迁移,应该转移。 – JNK 2010-09-15 12:54:51
这是什么确切的平台?你是如何安装MySQL的? '$ mysqladmin -h \'主机名\'--port = 3306版本'在我的Snow Leopard上可以正常工作,但我看起来MySQL的版本低于你(5.0.51),尽管我最近OSX(10.6.4)。 – 2010-09-15 15:50:46