#php #wordpress #woocommerce #centos #cyber-panel
#php #wordpress #woocommerce woocommerce #центос #кибер-панель
Вопрос:
Я внезапно начал получать 'Error establishing a database connection'
информацию о загрузке моего сайта WooCommerce, который размещен на CyberPanel под Centos 8.
Чтобы понять, что происходит, я вставил следующее 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
Кажется, я могу получить доступ к БД через пользовательский интерфейс phpMyAdmin через CyberPanel, и там я вижу, что в БД, которая, по-видимому, связана с моим приложением WordPress (w8WI11xxxxGCO), есть возможность изменить пароль по следующему URL: https://example.com:8090/phpmyadmin/server_privileges.php?username=w8WI11xxxxGCOamp;hostname=<myIP>
.
Я попытался изменить пароль на тот, который указан в wp_config.php
.
После перезагрузки Lightspeed server и повторной попытки ошибочное поведение по-прежнему сохраняется.
Как я могу оправиться от этого?
Почему приложение не запускается, в то время как база данных отлично доступна через 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 или обладающий достаточными знаниями об этом) мог бы пролить некоторый свет на их продукт для меня здесь.