今天访问一个网站,发现出现了下面这个内容,于是,就搜索一下解决办法。

Discuz! Database Error

(2002) notconnect

PHP Debug

No. File Line Code
1 forum.php 49 discuz_application->init()
2 source/class/discuz/discuz_application.php 65 discuz_application->_init_db()
3 source/class/discuz/discuz_application.php 373 discuz_database::init(%s, Array)
4 source/class/discuz/discuz_database.php 23 db_driver_mysql->connect()
5 source/class/db/db_driver_mysql.php 74 db_driver_mysql->_dbconnect(%s, %s, %s, %s, %s, %s)
6 source/class/db/db_driver_mysql.php 87 db_driver_mysql->halt(%s, %d)
7 source/class/db/db_driver_mysql.php 218 break()

www.metasploit.cn 已经将此出错信息详细记录, 由此给您带来的访问不便我们深感歉意. Need Help?


错误编号:2002

问题分析:

出现这个错误一般情况下是因为下面两个原因:

1、MySQL 服务器没有开启。

2、MySQL 服务器开启了,但不能找到 socket 文件。


解决办法:

    1、虚拟主机用户,请联系空间商确认数据库是否正常启动,并跟空间商确认 MySQL 的 socket 文件启动地址,可以尝试在 论坛根目录下的配置文件 config.inc.php 中的 $dbhost 的值改为 $dbname = 'localhost:/tmp/mysql.socket‘,(这里假设 MySQL 的启动地址是 /tmp/mysql.socket,具体的启动地址依据空间商提供的启动地址而定)。

2、独立主机用户,请检查一下 MySQL 服务是否已经开启,没有开启,请启动 MySQL 服务;如果已经开启并且是 Linux 系统,请检查一下 MySQL 的 socket 路径,然后打开 config.inc.php 找到

$dbhost = 'localhost'; 在 localhost 后面加冒号‘:’和 MySQL 的 socket  路径。

比如 MySQL 服务器为 localhost

MySQL 的 socket  路径为 /tmp/MySQL.sock

那么就改成如下:

$dbhost = 'localhost:/temp/MySQL.sock';