Intereting Posts
Проверьте, имеет ли почта термин внутри цикла Помогите отобразить изображение в одном посте, используя javascript zoom image ..? Условия использования Различные файлы функций для каждого сайта в многоуровневой установке? Как использовать персонализированный тип сообщения в качестве главной страницы? Использование контактной формы 7 с помощью easy fancybox Можно ли установить значения по умолчанию для настраиваемых полей в настраиваемом типе сообщений, пока мой плагин активирован? Hook / notify, когда добавляется или обновляется любой параметр или настройка Tag.php не отображает сообщения с тегом Как удалить все неиспользуемые фотографии Функция Как проверить, существует ли короткий код? Ограничение страницы и перенаправление для отдельных уровней или пользователя Post meta as array выглядит как строка вместо массива Архивы пользовательского типа сообщений по дате и таксономии Предотвратите загрузку других версий jquery на статическую главную страницу

Ошибка WP DB max_user_connections

Я получаю эту ошибку только в интерфейсе (не внутри / wp-admin):

Warning: mysqli_real_connect(): (HY000/1203): User xxx already has more than 'max_user_connections' active connections in /hermes/.../public_html/myhome/wp-includes/wp-db.php on line 1489 Warning: mysql_connect(): User xxx already has more than 'max_user_connections' active connections in /hermes/.../public_html/myhome/wp-includes/wp-db.php on line 1515 Error establishing a database connection 

И мне интересно, как получилось, когда я единственный посетитель? Я использую WP 4.5.

Я связался с хозяином, который был достаточно любезен, чтобы ответить следующим образом:

 Currently your website is showing 'Error establishing a database connection' because the user of the database has exceeded the concurrent connection limit for a user of a database, which is 10. This is the reason website is loads database error. The script throws the concurrent connection error when number of database connections exceed the limit set on the server. In our shared platform, we allow maximum of 10 concurrent connections to a database, which is ideal in the shared platform and it is not possible to increase this limit. The query limit for your website will be reset within couple of hours so you should be able to access the database after couple of hours. There are two cases the script loads above error, one is when there is a high traffic to the website and database concurrent connection hits the limit and second case is the database connection is not closed in the script, even for the moderate traffic the script loads concurrent connection error. To overcome this issue, you have to close the database connection immediately after fetching the required content from the database. To close the database connection you can use mysql_close() PHP function with connection parameter. This will help you to use database connection limit efficiently. 

Другими словами, все в порядке с нашей стороны, это ошибка WP.

Solutions Collecting From Web of "Ошибка WP DB max_user_connections"

Не связанный с WordPress, поэтому я не уверен, имею ли я право ответить здесь, но все равно увеличиваю max_user_connections в файле конфигурации my.cnf MySQL, так как вы просто проверяете.

Существует множество причин для завершения соединений, наиболее распространенных из них, связанных с тем, что сервер Web / App создает неожиданно большое количество подключений из-за отсутствия конфигурации или какого-либо сценария, протекающего из соединений или создающего слишком много подключений по ошибке.

Решение. Некоторые люди увеличивают max_connections до некоторого очень большого количества, поэтому MySQL никогда не заканчивается из соединений.

Однако это может привести к проблемам с потреблением ресурсов в еде памяти и заставить MySQL-сервер обмениваться или быть убитым с помощью процесса убийцы OOM или очень низкой производительности из-за высокой конкуренции.

Сначала вы хотите включить ошибки для $wpdb , абстракции базы данных WP:

 $GLOBALS['wpdb']->show_errors; 

Кроме того, ни одно из ваших соединений с БД действительно не умрет и не \WP_Error экземпляром \WP_Error . Код ошибки по умолчанию – 500 .

Следующая ошибка возникает из \wpdb::db_connect() :

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

Существуют два случая использования db_connect() :

  1. Подключение к БД
  2. Проверьте, есть ли соединение с базой данных

Разрешается только первая. Если соединение будет умирать, пока выполняется только проверка, он не умрет и не выбросит эту ошибку. Теперь соединение выполняется с помощью \wpdb_driver::connect() , который обеспечивает проверку, включено ли соединение и доступно ли оно. Это говорит о том, что ваша фактическая проблема действительно является самой связью. Вы можете посмотреть это ( не шутка ) в следующем файле:

 # interface-wp-db-driver.php <?php abstract class wpdb_driver { 

Вам лучше не думать о том, есть ли какая-либо корреляция между общим качеством основного кода WP и глубоким пониманием интерфейсов и абстрактных классов здесь.

Прямо перед тем, как соединение БД будет объявлено как «сбой», и ошибка будет сброшена, есть одна хорошая строка:

 require_once WP_CONTENT_DIR . '/db-error.php'; 

Это означает, что есть Drop In, загруженный до того, как все die . Вы можете использовать это и запустить там механизм отладки. У вас есть полное ядро ​​WP, доступное там. Вы можете начать отправлять по электронной почте себя, регистрировать эти ошибки в некоторых ELK / Kibana, Spark или любом стеке, некоторых SaaS или даже Slack (или просто в текстовом файле). Зарегистрируйте свои ошибки там, зарегистрируйте, что происходит, дамп-маршруты, запросы, данные подключения к БД, все, что вы думаете, может вам помочь.

Веб-серверы являются многозадачными … Предполагая, что ваша тема не пытается напрямую обращаться к БД (не через класс WPDB), каждое пользовательское соединение должно соответствовать времени жизни обработки запроса, который обрабатывает WP.

Предполагая, что у вас, вероятно, есть медленная обработка каждого запроса в сочетании нескольких запросов, которые обрабатываются «сразу», что может произойти, если ваша тема динамически загружает контент с помощью AJAX.

(это в основном то, что вам сказал ваш хостинг, что имеет смысл)