Я получаю эту ошибку так часто, что файл журнала php_error увеличивается на 1 МБ каждые 2 секунды. и сайт очень медленный.
Я попытался добавить эту строку в wp-db.php
$this->query("set session wait_timeout=600" ); 
но это не помогло.
Веб-сервер – это IIS 7, последняя версия mysql и wordpress
Этот трюк будет работать для всех версий WordPress. Откройте ваш WordPress каталог. Каталог будет содержать папки:
 wp-admin wp-content wp-includes 
Открыть wp-includes. Найдите файл wp-db.php. Если вы нашли файл, откройте его с помощью текстового редактора. Используя инструмент поиска текстового редактора, выполните поиск:
 $this->ready = true; 
После того, как вы нашли строку, добавьте следующие строки сразу после найденной строки:
 //WP Query Gone Away Error Fix $this->query("set session wait_timeout=600"); 
Вы также можете перейти по ссылке https://subinsb.com/fix-wordpress-error-mysql-server-has-gone-away, чтобы просмотреть более подробные сведения.
  Запустите SHOW STATUS WHERE Variable_name LIKE '%onn%' чтобы узнать, сколько открытых подключений у вас есть.  Моя выглядит так: 
 Variable_name Value Aborted_connects 1 Connections 629 Max_used_connections 3 Ssl_client_connects 0 Ssl_connect_renegotiates 0 Ssl_finished_connects 0 Threads_connected 2 
  Запустите SHOW PROCESSLIST чтобы узнать, какие процессы активны. 
Проблема может заключаться в том, что вы открываете слишком много соединений и не закрываете их. Выполнение этих команд, по крайней мере, даст представление о том, что может быть проблемой.