导入导出数据对于我来说,不敢说轻而易举,但是基本问题都可以解决。唯独这次,我真真的无语了。死活导入不进去?到底是怎么回事呢?
环境:1、CentOS7.8 MySQL8.0.13
2、表结构
+-------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id | int(11) | YES | | NULL | |
| name | varchar(10) | YES | | NULL | |
+-------+-------------+------+-----+---------+-------+
3、导入的数据
1,Lucy
2,Bili
3,Lili
实际操作:
拿到数据和表结构文件后,看了下,心想这不是很简单么?create table,load data 两条语句搞定。可结果这次真的是事与愿违。报错信息如下:load data infile '/tmp/insert_bom' into table t FIELDS TERMINATED BY ',';
ERROR 1366 (HY000): Incorrect integer value: '1' for column 'id' at row 1
数据文件明明是1,数据类型也对,为什么还会报错呢?真是百思不得期间。大家从我导入文件的名字中应该也可以猜出原因了。根本原因在与是否有bom。大家可以通过file命令去查看。file insert_bom
insert_bom: UTF-8 Unicode (with BOM) text
解决方法:只要把文件换成无bom格式就可以了。linux下用vim即可:set nobomb/set bomb
通过这件事,给自己提个醒。操作前,一定要注意核实文件格式,切记切记~