У меня есть виртуальная машина (Ubuntu 12.04, MySQL 5.5), работающая под VMware и предназначенная для размещения сервера mysql. Подключаюсь к этому серверу по внутреннему IP.
Я пытаюсь понять, почему я получаю mysql server has gone
ошибка. Один из моих Windows-машин apache останавливается из-за этой проблемы. Я пытался настроить свой mysql my.cnf со следующими параметрами, но не дал желаемого результата.
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 0.0.0.0
#
# * Fine Tuning
#
wait_timeout = 180
key_buffer = 384M
max_allowed_packet = 64M
thread_stack = 192K
thread_cache_size = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover = BACKUP
max_connections = 500
table_cache = 64
#thread_concurrency = 10
#
# * Query Cache Configuration
#
query_cache_limit = 1M
query_cache_size = 32M
как отладить эту проблему, чего не хватает в конфигурации, чтобы избежать этой ошибки?
это очень типичная, досадная ошибка.
вы можете попробовать увеличить время ожидания на стороне сервера mysql (не только время ожидания, но и время ожидания соединения) .... как долго выполняются ваши запросы, когда вы запускаете их вручную в оболочке mysql? дольше ваших таймаутов? это проблема.
это может быть на стороне приложения, например, если вы используете php, если код достигает max_execution_time [sic], вы можете увидеть эту ошибку.
Кроме того, переменная mysql max_packet [sic] вызовет эту ошибку и обычно возникает при импорте mysqldumps.
наконец, если у вас есть ограничение скорости iptables для tcp / 3306 (или того, что слушает mysql), вы можете увидеть это в результате отброшенных пакетов.
Короче говоря, попробуйте увеличить все ограничения / тайм-ауты, как на стороне mysql, так и на стороне приложения, по одному и повторяйте, пока не будет исправлено.