1:mysql在执行脚本时,报出了以下错误
index column size too large. the maximum column size is 767 bytes
2:原因:INNODB 引擎,UTF-8,主键字符串 默认最大 767,需要修改
3:解决方案: 对数据库进行设置
set global innodb_file_format = BARRACUDA;
set global innodb_large_prefix = ON;
4:mysql5版本解决方法-在navicat中执行成功,不清楚重启数据库是否还有效
show variables like 'innodb_large_prefix';
show variables like 'innodb_file_format';
4-1:mysql8版本解决方法-关闭InnoDB严格模式
set global innodb strict mode =0;
5:对脚本进行修改,添加ROW_FORMAT=DYNAMIC
create table test (........) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
6:报错信息是:MySQL server has gone away,原因是:Navicat连mysql默认的max_allowed_packet为4mb(限制mysql服务端接收到的包的大小),调大这个参数(150mb)通过在sql窗口执行:
show global variables like 'max_allowed_packet';
set global max_allowed_packet=157286400;