Периодическая, но проблемная ошибка - "Ошибка подключения к базе данных"
Я знаю, что многие пользователи сталкивались с следующей ошибкой:
Ошибка подключения к базе данных
Это означает, что информация о имени пользователя и пароле в вашем файле wp-config.php неверна или мы не можем связаться с сервером базы данных по адресу myamazingsite.com:3306. Возможно, сервер базы данных вашего хостинга не работает.
Уверяю вас, я не совершил следующих двух ошибок/грехов:
- Мои параметры
DB_NAME
,DB_USER
,DB_PASSWORD
,DB_HOST
,DB_CHARSET
иDB_COLLATE
указаны правильно с верными учетными данными. - Мои параметры
WP_HOME
иWP_SITEURL
закомментированы в конфигурационном файле, но записи в базе данных относительно имени домена (вwp_options
,wp_blogs
и т.д.) все соответствуют доменному имени, направленному на мой сервер. Они все включают протокол (https://
) там, где требуется - да вwp_options
, нет вwp_blogs
, в качестве примера.
Итак, это не проблема с учетными данными. Более того, я знаю это, потому что ошибка периодическая - она возникает примерно один раз на 10 запросов к моему WordPress, что я проверил лично. Но это также случается с моими клиентами при просмотре сайта, что совершенно неприемлемо.
Я читал, что это может означать проблему с нагрузкой на сервер, поскольку ошибка возникает лишь иногда. Но я так не думаю, по крайней мере в данном случае. Все мои ресурсы на сервере приложений и сервере базы данных используются минимально. Трафик также довольно низкий - не более 3 одновременных запросов в секунду.
Может быть, это проблема с сетью? Нет. Я проверил соединение с сервером базы данных с сервера приложений более 100 раз подряд с помощью nping
, и ping никогда не завершался неудачей с 100% успешностью теста. Более того, другие приложения на сервере (не WordPress) не имеют проблем с подключением к тому же серверу базы данных.
Так в чем же может быть проблема? У меня закончились идеи. Должно быть, это какая-то специфичная для WordPress ошибка/особенность, о которой я не знаю. Пожалуйста, помогите мне!

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

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

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

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