Error establishing a database connection: WordPress не подключается к базе
Вместо сайта — одна строка Error establishing a database connection. WordPress не смог подключиться к базе данных: в wp-config.php неверные данные или не работает сервер баз данных.
Содержание 9
Что сделать прямо сейчас
- Откройте страницу входа в админку: допишите к адресу сайта /wp-admin/, например https://example.com/wp-admin/. Там WordPress покажет ту же ошибку, но с подсказками.
- Сверьте четыре строки в файле wp-config.php — шаг 1.
- На VPS проверьте, пускает ли база с этими данными и работает ли сервер баз данных — шаги 2 и 3.
- На обычном хостинге, если данные верны, напишите в поддержку — подробнее.
Что означает ошибка
WordPress хранит записи, страницы и настройки в базе данных MySQL или MariaDB. При каждом открытии страницы он подключается к базе по данным из файла wp-config.php. Если подключиться не вышло, вместо сайта он показывает эту строку с кодом ответа 500.
На страницах сайта — только заголовок. В админке, по адресу /wp-admin/, WordPress добавляет пояснение: неверны имя пользователя и пароль в wp-config.php или не отвечает сервер баз данных. И три вопроса: верны ли пользователь и пароль, верно ли указан сервер, работает ли сервер баз данных. По этим вопросам и пойдём.
Шаг 1. Проверьте wp-config.php
На обычном хостинге файлы сайта открывают в файловом менеджере панели хостинга. Папка WordPress — та, где лежат папки wp-admin, wp-content и wp-includes. Откройте в нём файл wp-config.php.
На VPS подключитесь к серверу — как это сделать, рассказано в инструкции Как подключиться к VPS по SSH. В примерах папка сайта — /var/www/example.com: подставьте свою. Путь к ней указан в строке root в файле настроек сайта nginx. Откройте файл командой:
sudo nano /var/www/example.com/wp-config.phpНайдите четыре строки — в nano нажмите Ctrl+W, введите DB_NAME и нажмите Enter. В файле, который идёт вместе с WordPress, они выглядят так:
define( 'DB_NAME', 'database_name_here' );
define( 'DB_USER', 'username_here' );
define( 'DB_PASSWORD', 'password_here' );
define( 'DB_HOST', 'localhost' );В ваших строках вместо слов в правых кавычках — свои значения. Вот что должно там стоять:
| Строка | Что в ней должно быть |
|---|---|
| DB_NAME | Имя базы данных — то, что вы указали, когда создавали базу |
| DB_USER | Пользователь базы данных. Не логин в панели хостинга и не логин в WordPress |
| DB_PASSWORD | Пароль этого пользователя базы |
| DB_HOST | Сервер баз данных: localhost, если база на том же сервере, что и сайт. На хостинге — адрес из раздела панели, где создаются базы |
Значение пишется между одинарными кавычками, без пробелов по краям. Если в пароле есть апостроф ', в файле перед ним нужна обратная косая черта: \'. Если правили файл — сохраните файл: в nano — Ctrl+O, Enter, затем Ctrl+X. Затем откройте сайт снова.
Если ошибка появилась после переезда сайта, в wp-config.php остались данные старого хостинга: впишите имя базы, пользователя и пароль, которые вы создали на новом. Как переносить сайт, рассказано в инструкции Как перенести сайт на другой хостинг.
Шаг 2. Проверьте данные командой mysql
Этот шаг — для VPS. Подключитесь к базе с теми же данными, что в wp-config.php. Подставьте вместо wpuser значение DB_USER, а вместо wordpress — DB_NAME:
mysql -u wpuser -p wordpressПрограмма спросит пароль — введите значение DB_PASSWORD. Символы при вводе не видны, так и должно быть. Если программа пустила вас и ждёт команд — строка начинается с mysql> или MariaDB, — данные верны. Выйдите командой exit и переходите к шагу 3. Если же программа ответила ошибкой, найдите её номер в таблице:
| Ответ | Что это значит | Что делать |
|---|---|---|
ERROR 1045 … Access denied for user | Неверный пользователь или пароль | Разбор ошибки 1045 |
ERROR 1044 … Access denied … to database | Пароль верный, но у пользователя нет прав на эту базу | Разбор ошибки 1044 |
ERROR 1049 … Unknown database | Базы с таким именем нет | Разбор ошибки 1049 |
ERROR 2002 … Can't connect | Сервер баз данных не отвечает | Разбор ошибки 2002 и шаг 3 ниже |
Шаг 3. Проверьте, работает ли сервер баз данных
Этот шаг тоже для VPS. Если на сервере стоит MySQL, введите:
sudo systemctl status mysqlЕсли MariaDB:
sudo systemctl status mariadbЕсли система спросит пароль, введите пароль своего пользователя на сервере. Символы при вводе не видны — так и должно быть: наберите пароль и нажмите Enter. Чтобы вернуться к вводу команд после systemctl status, нажмите клавишу Q.
В строке Active должно быть active (running). Если там inactive или failed, запустите сервер — вместо mysql подставьте mariadb, если у вас она:
sudo systemctl start mysqlЕсли команда ничего не ответила, сервер запущен: откройте сайт снова. Если она ответила ошибкой Job for … failed, разберите её по странице Job for … failed. Сервер баз данных может останавливаться и сам — когда на сервере кончается память (Out of memory) или место на диске (No space left on device).
Если сайт на обычном хостинге
Сверьте имя базы, пользователя и пароль из wp-config.php с разделом панели, где создаются базы данных. Если не помните пароль пользователя базы, задайте в панели новый и впишите его в DB_PASSWORD. Если всё совпадает, а ошибка осталась, возможно, не работает сервер баз данных у хостера — напишите в поддержку.
Если заголовок другой: Cannot select database
Это значит, что WordPress подключился к серверу баз данных — пользователь и пароль верны, — но не смог открыть базу из строки DB_NAME. Проверьте имя базы: оно должно совпадать до буквы. Если имя верное, проверьте, есть ли у пользователя права на эту базу, — как это сделать, рассказано в разборе ошибки 1044.
Тексты сообщений сверены с исходным кодом WordPress 7.1.3. В русской версии WordPress те же сообщения показаны по-русски — сравнивайте по смыслу.
Источники
- Исходный код WordPress 7.1.3: class-wpdb.php — тексты Error establishing a database connection и Cannot select database.
- Исходный код WordPress 7.1.3: functions.php — функции dead_db и wp_nonce_ays, список разрешённых типов файлов, текст Unable to create directory.
- Исходный код WordPress 7.1.3: wp-config-sample.php — строки DB_NAME, DB_USER, DB_PASSWORD и DB_HOST.
Сверено 10 октября 2026 года.
Что почитать дальше
Проверено и обновлено: 10.10.2026