DEV Community

guardlabs_team
guardlabs_team

Posted on Originally published at guardlabs.online

Ошибка установки соединения с базой данных WordPress: как исправить

Ошибка установки соединения с базой данных WordPress: как исправить

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

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

// Имя базы данных
define( 'DB_NAME', 'имябазыданных' );

// Имя пользователя MySQL
define( 'DB_USER', 'имя_пользователя' );

// Пароль к базе данных
define( 'DB_PASSWORD', 'пароль_пользователя' );

// Имя сервера базы данных (обычно localhost)
define( 'DB_HOST', 'localhost' );

Обратите внимание на параметр DB_HOST. На некоторых хостингах вместо значения localhost требуется указывать IP-адрес или локальный домен (например, mysql.hosting.com или 127.0.0.1:3306). Точные данные можно узнать в панели управления хостингом в разделе баз данных.

Шаг 2. Изоляция проблемы с помощью тестового 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 или повреждении таблиц. Если соединение не удалось, ошибка вызвана сервером или неверными учетными данными. Обязательно удалите этот файл после теста.

Шаг 3. Восстановление поврежденной базы данных
Если при попытке войти в панель администратора (/wp-admin) вы видите ошибку, отличную от сообщения на главной странице (например, уведомление о необходимости восстановить таблицы), база данных повреждена.
Для исправления добавьте следующую строку в файл wp-config.php перед строкой «That’s all, stop editing!»:

define( 'WP_ALLOW_REPAIR', true );

После этого перейдите по адресу: https://ваш-сайт.com/wp-admin/maint/repair.php и нажмите кнопку «Восстановить базу данных». По завершении процесса обязательно удалите добавленную строку из wp-config.php.

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

Для Ubuntu/Debian

sudo systemctl status mysql

Для CentOS/RHEL

sudo systemctl status mariadb

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

sudo systemctl restart mysql # или mariadb

Если перезапуск решает проблему временно, изучите лог ошибок СУБД (обычно находится в /var/log/mysql/error.log) для выявления причин падения.

Шаг 5. Проверка прав пользователя базы данных
Иногда база данных существует, но у пользователя нет прав на работу с ней. В консоли MySQL или через инструмент phpMyAdmin (вкладка «Привилегии») убедитесь, что пользователю выданы полные права (ALL PRIVILEGES) на целевую базу данных. В консоли это можно исправить запросом:

GRANT ALL PRIVILEGES ON имябазыданных.* TO 'имя_пользователя'@'localhost';
FLUSH PRIVILEGES;

На shared-хостингах проверьте привязку пользователя к базе данных в соответствующем разделе панели управления (cPanel, ISPmanager, DirectAdmin).
Need this done? We handle this hands-on at GuardLabs — get in touch.

Top comments (0)