PHP函数 mysql_connect()连接MySQL数据库错误的解决办法
2014-02-21 20:11
375 查看
最近在学习《细说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的版本信息能够正常显示了。
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的版本信息能够正常显示了。
相关文章推荐
- 远程连接MySql服务器时 报not allowed to connect错误解决办法
- mysql中连接失败2003(Can't connect to server on 'localhost'(10038))错误解决办法
- 微软云Linux服务器 Mysql、tomcat远程连接错误解决办法
- 连接mysql时1045错误的解决办法
- python程序中Connect error: No route to host(errno:113) 连接错误解决办法--关闭iptables防火墙
- MySql连接错误:Can‘t get hostname for your address解决办法之小白篇
- 连接MySql的时候报1130的错误解决办法以及远程登陆方法.
- Connect error: No route to host(errno:113) 连接错误解决办法--关闭iptables防火墙
- mysql数据库 message from server: "Host is not allowed to connect to this MySQL server"解决办法
- MYSQL---远程连接mysql数据库提示:ERROR 1130的解决办法
- 远程连接MYSQL提示:Host XXX is not allowed to connect to this MySQL server 解决办法
- 关于mysql数据库连接时出现代码为2003的错误的解决办法
- 连接Mysql提示Can’t connect to local MySQL server through socket各种情况以及解决办法
- sqlyog连接Linux上的mysql报错误号码2013,错误号码1130的解决办法
- mysql远程连接:ERROR 1130 (HY000): Host '*.*.*.*' is not allowed to connect to this MySQL server解决办法
- 使用sqlyog远程连接mysql错误2003 cant connect to mysql 解决办法
- mysql不支持远程连接的解决办法(#1130 - Host 'localhost' is not allowed to connect to this MySQL server)
- Host is not allowed to connect to this MySQL server错误的解决办法
- mysql不支持远程连接的解决办法(#1130 - Host 'localhost' is not allowed to connect to this MySQL server)
- 【MySQL错误系列】本地无法远程连接阿里云Ubuntu环境下Mysql数据库cant connect to mysql server on …..(10061)