PHP函数 mysql_connect()连接MySQL数据库错误的解决办法

最近在学习《细说PHP》这本书。第五章的示例程序info.php在CentOS 64位虚拟机运行的时候,其中MySQL版本那一栏是空白信息。我查看了info.php源码,开始以为是MySQL数据库的用户名和密码填写错了,仔细检查没有错误之后,便查看了Apache的error_log,得到如下消息:

  mysql_connect(): No such file or directory

在网上查了一下,说是本地socket设置与默认的不一样,导致php无法找到mysql的socket文件。根据网上提供的方法,需要做如下操作。

首先,在MySQL中用status查看数据库状态,如下所示:

mysql  Ver 14.14 Distrib 5.1.69, for redhat-linux-gnu (x86_64) using readline 5.1
Connection id: 10
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.1.69 Source distribution
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db     characterset: latin1
Client characterset: latin1
Conn.  characterset: latin1
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 20 hours 55 min 30 sec

其中,标红的部分是我们需要的。然后打开php.ini文件,需要将mysql.default_socket、mysqli.default_socket、pdo_mysql.default_socket的值设置为标红后面的那个目录。重启apache服务器,后续info.php工作正常,MySQL的版本信息能够正常显示了。

你可能感兴趣的:(LAMP,Related)