当我尝试以localhost
访问我的WordPress网站时,我得到:
建立数据库连接时出错。
如何调试此问题?我能看到哪些日志?
我可以使用wordpressuser
上的用户localhost
登录MySQL。我似乎对数据库wordpressuser
上的wordpress
有正确的授权:
root@myhost# mysql -hlocalhost -uwordpressuser -pmypassword
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 109
Server version: 5.5.37-0+wheezy1 (Debian)
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show grants for wordpressuser@localhost;
+----------------------------------------------------------------------------------------------------------------------+
| Grants for wordpressuser@localhost |
+----------------------------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'wordpressuser'@'localhost' IDENTIFIED BY PASSWORD '*somepassword' |
| GRANT ALL PRIVILEGES ON `wordpress`.* TO 'wordpressuser'@'localhost' |
+----------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)
但是当我运行mysqlaccess
时,我得到:
root@myhost# mysqlaccess localhost wordpressuser wordpress -pmypassword
mysqlaccess Version 2.06, 20 Dec 2000
By RUG-AIV, by Yves Carlier (Yves.Carlier@rug.ac.be)
Changes by Steve Harvey (sgh@vex.net)
This software comes with ABSOLUTELY NO WARRANTY.
Password for MySQL user wordpressuser:
Sorry,
An error occured when trying to connect to the database
with the grant-tables:
* Maybe YOU do not have READ-access to this database?
* If you used the -U option, you may have supplied an invalid username?
for the superuser?
* If you used the -U option, it may be possible you have to supply
a superuser-password to, with the -P option?
* If you used the -P option, you may have supplied an invalid password?
wget localhost
因连接被拒而失败:
user@myhost:~$ wget localhost
--2014-06-08 01:11:29-- http://localhost/
Resolving localhost (localhost)... ::1, 127.0.0.1
Connecting to localhost (localhost)|::1|:80... failed: Connection refused.
Connecting to localhost (localhost)|127.0.0.1|:80... connected.
HTTP request sent, awaiting response... 500 Internal Server Error
2014-06-08 01:11:29 ERROR 500: Internal Server Error.
我的wp-config
似乎确实拥有正确的凭据(DB_NAME,DB_USER,DB_PASSWORD,DB_HOST)。
如何调试此问题?
答案 0 :(得分:0)
我设法暂时解决了这个问题:
试图找到php访问mysql数据库的地方,我做了一个
grep Ri db.user /var/www
找到那个
/var/www/wp-includes/load.php
在此行中创建数据库:
$wpdb = new wpdb( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST );
我尝试对DB_USER
的值进行硬编码。 DB_PASSWORD
,DB_NAME
,DB_HOST
,网站现在加载在localhost上。显然,wp-config.php
中定义的值与实际传递给new wpdb(...)
的值之间存在不匹配,但我还未能进一步跟踪这些值。
与其中一条评论中的建议不同:
这不是网络服务器的问题。该网站现在正常工作,从localhost或外部。
命令wget localhost
现在可以正常运行。它会下载index.html
,其中包含wordpress设置页