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

Discuz! Database Error

(2002) notconnect

PHP Debug

No.FileLineCode
1forum.php49discuz_application->init()
2source/class/discuz/discuz_application.php65discuz_application->_init_db()
3source/class/discuz/discuz_application.php373discuz_database::init(%s, Array)
4source/class/discuz/discuz_database.php23db_driver_mysql->connect()
5source/class/db/db_driver_mysql.php74db_driver_mysql->_dbconnect(%s, %s, %s, %s, %s, %s)
6source/class/db/db_driver_mysql.php87db_driver_mysql->halt(%s, %d)
7source/class/db/db_driver_mysql.php218break()

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';