DEV Community

guardlabs_team
guardlabs_team

Posted on Originally published at guardlabs.online

Как исправить ошибку «Error establishing a database connection» в WordPress

Как исправить ошибку «Error establishing a database connection» в WordPress

Ошибка установления связи с базой данных в WordPress означает, что PHP-код вашего сайта не может подключиться к базе данных MySQL/MariaDB. Это происходит по трем основным причинам: неверные учетные данные в конфигурационном файле, повреждение таблиц базы данных или сбой в работе сервера СУБД. Ниже приведены пошаговые инструкции для диагностики и устранения этой проблемы.

  1. Проверка учетных данных в wp-config.php В 90% случаев ошибка возникает из-за неверных параметров подключения после переноса сайта или смены паролей. Подключитесь к сайту по FTP/SFTP или через файловый менеджер панели хостинга, откройте файл wp-config.php в корневом каталоге и найдите следующие строки:

define('DB_NAME', 'имябазыданных');
define('DB_USER', 'имяпользователя');
define('DB_PASSWORD', 'пароль
пользователя');
define('DB_HOST', 'localhost');

Выполните следующие шаги для проверки:

Сравните эти значения с параметрами базы данных в панели управления вашего хостинга.
Убедитесь, что у пользователя базы данных есть полные права (ALL PRIVILEGES) на чтение и запись в указанную БД.
Проверьте параметр DB_HOST. На большинстве хостингов это localhost, но некоторые провайдеры используют IP-адреса или отдельные доменные имена (например, mysql.yourdomain.com).
Enter fullscreen mode Exit fullscreen mode
  1. Восстановление поврежденной базы данных Если при попытке зайти в административную панель сайта (/wp-admin) вы видите ошибку, отличную от главной страницы (например, «One or more database tables are unavailable»), это указывает на повреждение таблиц базы данных. Для запуска автоматического восстановления WordPress добавьте следующую строку в файл wp-config.php прямо перед строкой /* That's all, stop editing! Happy publishing. */:

define('WP_ALLOW_REPAIR', true);

После сохранения файла перейдите по адресу:
https://ваш-сайт.com/wp-admin/maint/repair.php
Нажмите кнопку «Repair Database» (Восстановить базу данных). После завершения процесса обязательно удалите добавленную строку define('WP_ALLOW_REPAIR', true); из файла wp-config.php, чтобы посторонние лица не могли запустить этот скрипт.

  1. Проверка работы MySQL-сервера (для VPS/VDS) Если у вас собственный виртуальный или выделенный сервер, служба базы данных могла аварийно завершить работу из-за нехватки оперативной памяти (OOM Killer) или высокой нагрузки. Подключитесь к серверу по SSH и проверьте статус службы СУБД:

Для Ubuntu/Debian с MySQL:

sudo systemctl status mysql

Для Ubuntu/Debian с MariaDB:

sudo systemctl status mariadb

Для CentOS/RHEL:

sudo systemctl status mariadb

Если служба остановлена (статус inactive или failed), перезапустите ее:

sudo systemctl restart mysql # или mariadb

Если вы используете обычный виртуальный (shared) хостинг, вы не сможете перезапустить службу самостоятельно. В этом случае обратитесь в техническую поддержку хостинга с запросом, работает ли сервер баз данных.

  1. Тестирование подключения через PHP-скрипт Чтобы исключить проблемы внутри самого ядра WordPress, создайте в корневом каталоге сайта тестовый файл db-test.php со следующим содержимым:

<?php
$link = mysqli_connect('localhost', 'имяпользователя', 'парольпользователя');
if (!$link) {
die('Ошибка подключения: ' . mysqli_connect_error());
}
echo 'Подключение успешно установлено!';
mysqli_close($link);
?>

Замените параметры подключения на ваши данные из wp-config.php и перейдите по адресу https://ваш-сайт.com/db-test.php. Если скрипт выводит ошибку подключения, проблема лежит на стороне сервера СУБД или неверных учетных данных. Если выводится сообщение об успешном подключении — проблема в самом WordPress (например, повреждены файлы ядра или повреждена конкретная таблица wp_options).
После диагностики обязательно удалите файл db-test.php с сервера.
Need this done? We handle this hands-on at GuardLabs — get in touch.

Top comments (0)