Как исправить ошибку «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).
2. Восстановление поврежденной базы данных
Если при попытке зайти в административную панель сайта (/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, чтобы посторонние лица не могли запустить этот скрипт.
3. Проверка работы 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) хостинг, вы не сможете перезапустить службу самостоятельно. В этом случае обратитесь в техническую поддержку хостинга с запросом, работает ли сервер баз данных.
4. Тестирование подключения через 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.
I take on freelance fixes and builds in this area.