简体   繁体   English

如何调试与WordPress建立数据库连接的错误

[英]How to debug error establishing a database connection with WordPress

When I try to access my WordPress site as localhost , I get: 当我尝试以localhost访问我的WordPress网站时,我得到:

Error establishing a database connection`. 建立数据库连接时出错。

How can I debug this problem? 我该如何调试这个问题? Where are logs I can see? 我能看到哪些日志?

I am able to login to MySQL with user wordpressuser on localhost . 我可以使用localhost上的用户wordpressuser登录MySQL。 I seem to have correct grants for wordpressuser on database wordpress : 我似乎对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)

But when I run mysqlaccess , I get: 但是当我运行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 fails with connection refused: 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.

My wp-config does seem to have the proper credentials (DB_NAME, DB_USER, DB_PASSWORD, DB_HOST). 我的wp-config似乎有正确的凭据(DB_NAME,DB_USER,DB_PASSWORD,DB_HOST)。

How can I debug this problem? 我该如何调试这个问题?

I managed to temporarily work around the issue as follows: 我设法暂时解决了这个问题如下:

Trying to find the place where php accesses the mysql database, I did aa 试图找到php访问mysql数据库的地方,我做了一个

grep Ri db.user /var/www

to find that 找到那个

/var/www/wp-includes/load.php

creates the database in this line: 在此行中创建数据库:

$wpdb = new wpdb( DB_USER, DB_PASSWORD, DB_NAME, DB_HOST );

I tried hard-coding the values for DB_USER . 我尝试对DB_USER的值进行硬编码。 DB_PASSWORD , DB_NAME , DB_HOST , and the site does load on the localhost now. DB_PASSWORDDB_NAMEDB_HOST ,该站点现在加载在localhost上。 Clearly, there was a mismatch between the values defined in wp-config.php , and those that actually get passed to new wpdb(...) , though I haven't been able to track that down further yet. 很明显, wp-config.php定义的值与实际传递给new wpdb(...)的值之间存在不匹配,尽管我还没有能够进一步跟踪它。

Unlike what was suggested in one of the comments: 与其中一条评论中的建议不同:

  1. This was not a problem with the web-server. 这不是Web服务器的问题。 The site works normally now, from within localhost or from outside. 该网站现在正常工作,从localhost或外部。

  2. The command wget localhost does work correctly now. 命令wget localhost现在可以正常工作。 It downloads an index.html which contains the wordpress setup page 它下载了一个包含wordpress设置页面的index.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM