2006 MySQL server has gone away & Got a packet

2006 - MySQL server has gone away

max_allowed_packet=500Mhtml

[Err] 1153 - Got a packet bigger than 'max_allowed_packet' bytesmysql

修改完記得重啓數據庫sql

重啓數據庫:數據庫

 /etc/init.d/mysql restart性能

查看狀態:編碼

 /etc/init.d/mysql statusspa

1071 - Specified key was too long; max key length is 767 bytesrest

緣由

數據庫表採用utf8編碼,其中varchar(255)的column進行了惟一鍵索引server

而mysql默認狀況下單個列的索引不能超過767位(不一樣版本可能存在差別)htm

因而utf8字符編碼下,255*3 byte 超過限制

解決

1  使用innodb引擎;

2  啓用innodb_large_prefix選項,將約束項擴展至3072byte;

3  從新建立數據庫;

my.cnf配置:

default-storage-engine=INNODB

innodb_large_prefix=on

 

通常狀況下不建議使用這麼長的索引,對性能有必定影響;

參考文檔:

https://dev.mysql.com/doc/refman/5.5/en/innodb-restrictions.html

相關文章
相關標籤/搜索