Если у вас есть опыт работы в интернете, то вы уже увидели эту ошибку несколько раз. Ошибка установления подключения к базе данных является одним из тех проблем, которые могут быть вызваны многими причинами. Если вы в WordPress новичок, это может быть ужасно неприятно, особенно когда оно случилось само по себе, без каких-либо изменений. Мы столкнулись с этой проблемой недавно на своем собственном сайте. Потребовалось немногим более 20 минут, чтобы обнаружить и устранить проблему. Проведя исследования, и найдя причины этой ошибки, мы поняли, что необходимо написать хорошую статью, решающую эту проблему. В этой статье мы покажем вам, как исправить ошибку установления соединения с базой данных в WordPress путем составления списка решений все в одном месте.
Примечание: перед внесением любых изменений базы данных, убедитесь, что у вас есть резервные копии.
Ну вот, вы получили эту ошибку, вас сайт на WordPress не может установить соединение с базой данных. Причина, по которой WordPress не может установить соединение с базой данных может быть разные. Возможно, что в вашей базе данных учетные данные для входа неверны или были изменены. Это может быть, если ваш сервер базы данных не отвечает. Это может быть база данных была повреждена. По нашему опыту, большинство раз эта ошибка происходит из-за какой-то ошибки сервера, однако там могут быть и другие факторы. Давайте взглянем на то, как пойти к устранении этой проблемы.
Первое, что вы должны сделать, это убедиться, что вы получаете ту же ошибку, как на фронт-энде сайта, так и на серверной части сайта (wp-admin). Если сообщение об ошибке такое же, как на страницах “ошибка установления подключения к базе данных”, переходите на следующий шаг. Если вы получаете различные ошибки в wp-amin для экземпляра что-то вроде “одна или несколько таблиц базы данных недоступны. База данных может нуждаться в ремонте”, тогда вам нужно восстановить вашу базу данных.
Вы можете сделать это, добавив следующую строку в ваш wp-config.php файл:
define('WP_ALLOW_REPAIR', true);
Как только вы сделали это, вы можете увидеть настройки, посетив эту страницу:http://www.yoursite.com/wp-admin/maint/repair.php
Запомните, пользователю не нужно регистрироваться, чтобы получить доступ к этой функциональности при этом определить установлен. Это ведь его главная цель заключается в том, чтобы восстановить поврежденную базу данных, пользователи часто не могут зайти, когда база данных повреждена. Поэтому, как только вы закончили ремонт и оптимизацию базы данных, удалите вышеописанную строку из wp-config.php.
Если данный ремонт не приводит к устранению проблемы, или вы испытываете проблемы при запуске ремонта то продолжите чтение этой статьи, чтобы вы могли найти другое решение.
wp-config.php это, наверное, самый важный файл во всей вашей установки WordPress. Это где у вас указанны реквизиты для WordPress при подключения к базе данных. Если вы изменили пароль пользователя root, или пароль пользователя базы данных, то вам нужно будет изменить этот файл. Первое, что вы должны всегда проверить в вашем файле wp-config.php:
define('DB_NAME', 'database-name'); define('DB_USER', 'database-username'); define('DB_PASSWORD', 'database-password'); define('DB_HOST', 'localhost');
Помните, что DB_Host не всегда может быть localhost. В зависимости от хостинга, он может быть другим. Для популярных хостингов он является localhost. Вы можете найти другие принимающих значения здесь.
Некоторые люди предположили, что они зафиксировали свою проблему, спустя замены имя localhost на IP. Здесь часто можно увидеть такого рода проблему, когда под управлением WordPress в локальной серверной среде. Например на MAMP, DB_Host значение при изменении на IP может заставить работать.
define('DB_HOST', '127.0.0.1:8889');
IP адреса будут различаться для онлайн-услуг веб-хостинга.
Если все в этом файле является корректно (убедитесь, что вы проверить на наличие опечаток), тогда было бы справедливо сказать, что там что-то не так на серверной части.
Часто можно заметить, ошибку установления соединения с базой данных когда ваш сайт получает много трафика. В принципе, ваш хост-сервер просто не может справиться с нагрузкой (особенно, когда вы находитесь на виртуальном хостинге). Ваш сайт будет работать очень медленно, и для некоторых пользователей даже выводить ошибку. Поэтому лучшее, что вы должны сделать, это связаться с хостинг-провайдером и спросить их, как ваш MySQL сервер отзывается.
Для тех пользователей, которые хотят протестировать, как работает сервер MySQL, есть несколько вариантов. Проверить другие сайты на том же сервере, чтобы увидеть, если ли и у них данная проблема. Если они будут также получать те же ошибки, тогда определенно там что-то не так с вашим сервером MySQL. Если у вас нет больше сайтов на этом же аккаунте хостинга просто зайдите в свою cpanel и попробуйте открыть phpmyadmin и подключить базу данных. Если вы подключитесь, тогда мы должны проверить, если ваша база данных Пользователь имеет достаточные разрешения. Создайте новый файл с названием testconnection.php и вставьте в него следующий код:
<?php $link = mysql_connect('localhost', 'root', 'password'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); ?>
Не забудьте заменить логин и пароль. Если подключение к серверу прошло успешно, то это означает, что пользователь имеет достаточные разрешения, значит неправильно что-то другое. Возвращайтесь в свой wp-config, и убедитесь, что там все правильно (повторно сканировать их на наличие опечаток).
Если вам не удается подключиться к базе данных, зайдя в phpmyadmin, то вы знаете, это что-то с вашим сервером. Это не обязательно означает, что ваш MySQL сервер не работает. Это может означать, что ваш пользователь не имеет достаточных разрешений.
В нашем случае, наш MySQL сервер был запущен. Все другие сайты на сервера работали нормально за исключением AndreyEx. Когда мы попытались зайти на наш сервер через phpmyadmin, то в итоге получили ошибку:
#1045 – Access denied for user ‘foo’@’%’ (using password: YES)
Мы получили по чату с хостингом в и их тех. поддержки и быстро нашли проблему. Надо было наше разрешения пользователя сбросить. Не знаю, как это случилось, но видимо это было причиной. Они восстановите права доступа, и мы были в состоянии получить сайт обратно рабочим.
Так что если вы получаете доступ и не было ошибок при подключении либо в phpmyadmin или через результаты testconnection.php, то вы должны связаться со своим хостингом, чтобы исправить ошибки.
Важно отметить, что они могут не работать для вас. Используйте на свой страх и риск и убедитесь, что у вас есть достаточные резервные копии, если что-нибудь пойдет не так.
Дипак Миттал заявил, что его клиент получал ошибку, что база данных нуждается в ремонте. Даже после восстановление базы данных, ошибка не ушла. Он пробовал различные методы и в конце концов, проблема была в URL сайта. Видимо, что было какое-то изменение которое вызвало эту ошибку. Он напечатал SQL-запрос, зайдя в phpmyadmin:
UPDATE wp_options SET option_value='YOUR_SITE_URL' WHERE option_name='siteurl'
Не забудьте заменить YOUR_SITE_URL фактическим URL пример: https://AndreyEx.ru. В wp_options будет отличаться, если вы меняли префикс базы данных WordPress по умолчанию. Это, оказалось, решило данную проблему для него и немногих других, что прокомментировал его пост.
Это очень печальная ошибка. Что вы пробовали, что сработало для вас? Мы были бы рады расширить на этот ресурс, чтобы другие не придется тратить столько времени на поиск решения.