Периодическая, но проблемная ошибка - "Ошибка подключения к базе данных"

1 авг. 2019 г., 02:35:07
Просмотры: 291
Голосов: 0

Я знаю, что многие пользователи сталкивались с следующей ошибкой:

Ошибка подключения к базе данных

Это означает, что информация о имени пользователя и пароле в вашем файле wp-config.php неверна или мы не можем связаться с сервером базы данных по адресу myamazingsite.com:3306. Возможно, сервер базы данных вашего хостинга не работает.

Уверяю вас, я не совершил следующих двух ошибок/грехов:

  1. Мои параметры DB_NAME, DB_USER, DB_PASSWORD, DB_HOST, DB_CHARSET и DB_COLLATE указаны правильно с верными учетными данными.
  2. Мои параметры WP_HOME и WP_SITEURL закомментированы в конфигурационном файле, но записи в базе данных относительно имени домена (в wp_options, wp_blogs и т.д.) все соответствуют доменному имени, направленному на мой сервер. Они все включают протокол (https://) там, где требуется - да в wp_options, нет в wp_blogs, в качестве примера.

Итак, это не проблема с учетными данными. Более того, я знаю это, потому что ошибка периодическая - она возникает примерно один раз на 10 запросов к моему WordPress, что я проверил лично. Но это также случается с моими клиентами при просмотре сайта, что совершенно неприемлемо.

Я читал, что это может означать проблему с нагрузкой на сервер, поскольку ошибка возникает лишь иногда. Но я так не думаю, по крайней мере в данном случае. Все мои ресурсы на сервере приложений и сервере базы данных используются минимально. Трафик также довольно низкий - не более 3 одновременных запросов в секунду.

Может быть, это проблема с сетью? Нет. Я проверил соединение с сервером базы данных с сервера приложений более 100 раз подряд с помощью nping, и ping никогда не завершался неудачей с 100% успешностью теста. Более того, другие приложения на сервере (не WordPress) не имеют проблем с подключением к тому же серверу базы данных.

Так в чем же может быть проблема? У меня закончились идеи. Должно быть, это какая-то специфичная для WordPress ошибка/особенность, о которой я не знаю. Пожалуйста, помогите мне!

0
Все ответы на вопрос 1
3

Я бы проверил проблемы с подключениями к базе данных. Существует определенное количество разрешенных подключений к БД — это настройка в конфигурации базы данных (не помню точно, какая именно) — и если подключений слишком много, следующее подключение завершится ошибкой.

Свяжитесь со своей хостинговой компанией и попросите увеличить количество допустимых подключений к базе данных. Это настройка, которую они должны сделать, по крайней мере на моем хостинге; у меня не было доступа к конфигурационным файлам БД.

Они могут предложить вам перейти на выделенный сервер вместо виртуального хостинга — это решило похожую проблему для меня, хотя я никогда не думал, что сайт настолько загружен, чтобы требовался выделенный сервер.

Моя похожая (как мне кажется) проблема была очень сложной для диагностики, так что, возможно, предложение "вам нужен выделенный сервер" было просто попыткой продать более дорогой тариф.

1 авг. 2019 г. 03:33:29
Комментарии

Спасибо за ответ! Но нет, я думаю, дело не в этом. Это не большое количество соединений. Я использую AWS и не думаю, что они ограничивают соединения, как это делают некоторые более управляемые хосты - все метрики использования низкие. Часто, если я сразу обновляю страницу, то ошибка исчезает, а затем появляется снова. Максимальная нагрузка на мою БД была во время ping-теста, который показал 100% успешных соединений.

Søren Søren
1 авг. 2019 г. 03:46:22

Я поторопился с выводами! Лимит есть - 312 одновременных подключений для моей БД. Но у меня никогда не было даже близко такого количества одновременных соединений.

Søren Søren
1 авг. 2019 г. 03:52:24

Всё ещё возможно, что вы достигаете лимита одновременных подключений. Один запрос страницы может создавать несколько подключений; зависит от того, как построены тема и плагины. Хостинг-провайдер должен иметь возможность отслеживать/видеть количество ваших одновременных подключений за определённый период. Возможно, это даст вам полезную информацию. Мне было сложно диагностировать эту ошибку на одном из моих сайтов.

Rick Hellewell Rick Hellewell
1 авг. 2019 г. 18:17:56