每隔 2-3 分钟我就会遇到问题
mysql> show tables;
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id: 57
我真的无法找到它发生的原因。我看到我的错误日志说
120419 0:36:03 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
InnoDB: Last MySQL binlog file position 0 93884, file name /EBSmnt/mysql/mysql-bin.000233
120419 0:36:04 InnoDB: Started; log sequence number 1692 2597076235
120419 0:36:04 [Note] Event Scheduler: Loaded 0 events
120419 0:36:04 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.1.43-enterprise-gpl-advanced-log' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Enterprise Server - Advanced Edition (G
任何人都可以告诉如何处理场景。它在生产服务器之一上。
编辑
RAM 为 7GB。
而 my.cnf 中的 InnoDB 配置是
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 3G
innodb_data_home_dir = /lvm/mysql
innodb_data_file_path = ibdata1:80G:autoextend
innodb_log_buffer_size = 8M
innodb_log_file_size = 1300M
innodb_log_files_in_group = 3
我怀疑你的max_allowed_packet和一个大的 TEXT/BLOB 字段的存在。
我过去回答了两个涉及 mysql 崩溃的问题,因为 max_allowed_packet 太小了。
我建议将您的 max_allowed_packet 提高到最大值,即 1GB
如果您有 TEXT/BLOB 字段,您可能输入的 TEXT/BLOB 字段太大而无法通过MySQL 数据包或 InnoDB 日志文件。您可能需要将 innodb 日志文件的大小调整为最大值,即 2047M。这是做什么:
步骤 01) 将此添加到 /etc/my.cnf
注意:在 Google Cloud 中,不能输入 1G,必须使用值 1073741824
步骤 02)
service mysql stop
步骤 03)
rm -f /var/lib/mysql/ib_logfile[01]
步骤 04)
service mysql start
从问题中显示的 MySQL 错误日志中,您的 MySQL 服务器没有任何问题。
MySQL客户端提示错误消息:
...是因为两个连接超时变量
wait_timeout
,即interactive_timeout
.如果您的连接空闲超过
interactive_timeout
几秒钟,您的连接将自动断开。