Navicat运行SQL文件,报错1031
[ERR] 1031 - Table storage engine for '表名' doesn't have this option
[ERR] CREATE TABLE eload_order_to_erp_records (
id int(11) NOT NULL AUTO_INCREMENT,
order_id int(11) DEFAULT '0',
addtime int(11) DEFAULT '0',
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=11429 DEFAULT CHARSET=utf8 ROW_FORMAT=FIXED
删除ROW_FORMAT=FIXED
在Linux系统中,可以使用sed进行文本替换。
[root@sy-pc ~]$ cat old.sql | sed 's/ROW_FORMAT=FIXED//g' > new.sql
[SQL] Query SQL文件名称 start
[ERR] 1265 - Data truncated for column 'from' at row 1
[ERR] INSERT INTO `feedback` VALUES ('14', '1', '[email protected]', 'God\n\nDf\nLloyd\nKl\nLloyd\nLloyd\n\nLoll\nLoll\nLoJack\nJunk\nKim\n]jkj\nJkj\nJkj\nKill\nLike\nKhalil\nLoll\n\\lll\nI\'ll', '', '1465951204')
[SQL] Finished unsuccessfully
查看表结构
DROP TABLE IF EXISTS `feedback`;
CREATE TABLE feedback (
f_id int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`type` tinyint(1) DEFAULT NULL COMMENT '类型',
email varchar(50) DEFAULT NULL COMMENT '邮箱',
content text COMMENT '内容',
`from` enum('android','ios') DEFAULT NULL COMMENT '来源',
created_time int(10) DEFAULT NULL COMMENT '添加时间',
PRIMARY KEY (f_id)
) ENGINE=InnoDB AUTO_INCREMENT=56 DEFAULT CHARSET=utf8 COMMENT='APP反馈';
原表中 from 字段的类型是枚举,且只有 android ios 两个选项,SQL文件中写入的数据是空字符串 ''
,类型不匹配造成的错误。
因为对该表的Insert语句太多了,所以我对创建表的语句进行了修改,将
`from` enum('android','ios') DEFAULT NULL COMMENT '来源',
替换为
`from` enum('android','ios','') DEFAULT NULL COMMENT '来源',
在Linux系统中,使用sed命令。
测试
$ cat old.sql | sed "s/\`from\` enum('android','ios') DEFAULT NULL COMMENT '来源'/\`from\` enum('android','ios','') DEFAULT NULL COMMENT '来源'/" | grep "DEFAULT NULL COMMENT '来源'"
`from` enum('android','ios','') DEFAULT NULL COMMENT '来源',
执行
$ cat old.sql | sed "s/\`from\` enum('android','ios') DEFAULT NULL COMMENT '来源'/\`from\` enum('android','ios','') DEFAULT NULL COMMENT '来源'/" > new.sql
[SQL] Query yzc_test_2 start
[ERR] 2013 - Lost connection to MySQL server during query
变量net_read_timeout和net_write_timeout,它们分别设置为30秒和60秒。 可以在my.cnf配置文件中根据需要设置它们来更改它们。对my.cnf进行这些更改后,必须重新启动MySQL!!!
net_read_timeout = 120
net_write_timeout = 900
若更改my.cnf后,不想重启,则执行以下SQL
set global net_read_timeout = 120;
set global net_write_timeout = 900;
[1] Mysql Row_Format 参数讲解 [DB|OL] https://www.cnblogs.com/bing-yu12/p/7735652.html
[2] awk&sed入门(可编程过滤器awk与流编辑器sed) [DB|OL] https://blog.csdn.net/zhou16333/article/details/84234978#_226
[3] [DB|OL] https://blog.csdn.net/weixin_39561473/article/details/90213914