我突然开始'Error establishing a database connection'
加载我的 WooCommerce 网站,该网站托管在 Centos 8 下的 CyberPanel 上。
为了了解发生了什么,我在 wp_config.php 中添加了以下内容:
define('WP_ALLOW_REPAIR', true);
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true);
这发现了以下堆栈跟踪:
( ! ) Warning: mysqli_real_connect(): (HY000/1045): Access denied for user 'w8WI11xxxxGCO'@'localhost' (using password: YES) in /home/example.com/public_html/wp-includes/wp-db.php on line 1653
Call Stack
# Time Memory Function Location
1 0.0009 372512 {main}( ) .../repair.php:0
2 0.0012 373000 require_once( '/home/example.com/public_html/wp-load.php' ) .../repair.php:10
3 0.0015 373400 require_once( '/home/example.com/public_html/wp-config.php' ) .../wp-load.php:37
4 0.0025 374800 require_once( '/home/example.com/public_html/wp-settings.php' ) .../wp-config.php:84
5 0.0546 832240 require_wp_db( ) .../wp-settings.php:124
6 0.0610 836424 wpdb->__construct( ) .../load.php:527
7 0.0610 836424 wpdb->db_connect( ) .../wp-db.php:632
8 0.0611 838000 mysqli_real_connect ( ) .../wp-db.php:1653
Access denied for user 'w8WI11xxxxxGCO'@'localhost' (using password: YES)
Error establishing a database connection
我似乎能够通过 CyberPanel 通过 phpMyAdmin UI 访问数据库,并且在那里我可以看到在似乎与我的 WordPress 应用程序(w8WI11xxxxGCO)相关联的数据库中,可以在以下 URL 处更改密码:https://example.com:8090/phpmyadmin/server_privileges.php?username=w8WI11xxxxGCO&hostname=<myIP>
.
我试图将密码更改为wp_config.php
.
重新启动 Lightspeed 服务器并重试后,错误行为仍然存在。
我怎样才能从中恢复过来?
当数据库可以通过 phpMyAdmin 完全访问时,为什么应用程序无法启动?
如果有人可以指导我解决此问题,我将不胜感激。
先感谢您。
PS我还尝试将此用户配置为没有密码并授予他所有权限,但这也不会改变情况,除了现在读取的错误消息:
Warning: mysqli_real_connect(): (HY000/1045): Access denied for user 'w8WI11xxxxxGCO'@'localhost' (using password: NO) in /home/example.com/public_html/wp-includes/wp-db.php on line 1653
然后我决定从命令行对数据库运行以下脚本:
这证实了 CyberPanel 中的某些东西以某种方式弄乱了凭据:
PHP Warning: mysqli_connect(): (HY000/1045): Access denied for user 'w8WI11xxxxxGCO'@'localhost' (using password: YES) in /home/example
.com/public_html/testConnection.php on line 2
PHP Stack trace:
PHP 1. {main}() /home/example.com/public_html/testConnection.php:0
PHP 2. mysqli_connect() /home/example.com/public_html/testConnection.php:2
PHP Warning: mysqli_error() expects exactly 1 parameter, 0 given in /home/example.com/public_html/testConnection.php on line 4
PHP Stack trace:
PHP 1. {main}() /home/example.com/public_html/testConnection.php:0
PHP 2. mysqli_error() /home/example.com/public_html/testConnection.php:4
Could not connect: [root@example ~]#
我很想知道 CyberPanel 中的哪些内容以破坏数据库凭据并且不允许恢复它们的方式弄乱了配置。
也许有人(希望代表 CyberPanel 团队或对此有足够的了解)可以在这里为我阐明他们的产品。