mysql导入csv的4种报错的解决方法

以此悼念我今天踩过的4个坑……

坑一:local的错

报错:
ERROR 3948 (42000): Loading local data is disabled; this must be enabled on both the client and server sides
修正:去掉local

mysql> load data infile ……

坑二:csv地址错

报错:
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
修正:csv放进正确的地址
先查出安全文件的地址:

mysql> load data infile ……

再把要导入的csv文件放进该文件夹:

mysql>load data infile 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/user_info_utf.csv' ……

注意:\ 必须改为 /

坑三:文件格式错

报错:
ERROR 1366 (HY000): Incorrect integer value: ‘\FEFF1' for column ‘userId' at row 1

修正:修改文件格式
先用excel打开,另存为,保存类型-utf8,工具-web选项-编码utf8,替换原来文件:

再用“记事本”打开,另存为,保存类型-所有文件,编码-utf8,替换原来文件:

坑四:空值的错

报错:
ERROR 1292 (22007): Incorrect date value: ‘' for column ‘birth' at row 18
修正:
修改sql_mode:

mysql> set @@sql_mode=ANSI;

备注说明:
ANSI模式:宽松模式,更改语法和行为,使其更符合标准SQL。对插入数据进行校验,如果不符合定义类型或长度,对数据类型调整或截断保存,报warning警告。对于csv导入空值报错,可以先把sql_mode设置为ANSI模式,这样便可以插入数据,而对于无数据的字段值,数据库将会用NULL值代替。

最后爬出坑:

mysql>load data infile 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/user_info_utf.csv' into table data.userinfo fields terminated by ',' optionally enclosed by '"' escaped by '"'lines terminated by '\r\n';

成功导入!感天动地!

到此这篇关于mysql导入csv的4种报错的解决方法的文章就介绍到这了,更多相关mysql导入csv报错内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Mysql 导入导出csv 中文乱码问题的解决方法

    导入csv: 复制代码 代码如下: load data infile '/test.csv' into table table_name fields terminated by ','  optionally enclosed by '"' escaped by '"' lines terminated by '\r\n' ignore 1 lines; 导csv: 复制代码 代码如下: SELECT * INTO OUTFILE '/test.csv'  FIELDS TERMIN

  • Python实现 多进程导入CSV数据到 MySQL

    前段时间帮同事处理了一个把 CSV 数据导入到 MySQL 的需求.两个很大的 CSV 文件, 分别有 3GB.2100 万条记录和 7GB.3500 万条记录.对于这个量级的数据,用简单的单进程/单线程导入 会耗时很久,最终用了多进程的方式来实现.具体过程不赘述,记录一下几个要点: 批量插入而不是逐条插入 为了加快插入速度,先不要建索引 生产者和消费者模型,主进程读文件,多个 worker 进程执行插入 注意控制 worker 的数量,避免对 MySQL 造成太大的压力 注意处理脏数据导致的异

  • Python之csv文件从MySQL数据库导入导出的方法

    Python从MySQL数据库中导出csv文件处理 csv文件导入MySQL数据库 import pymysql import csv import codecs def get_conn(): conn = pymysql.connect(host='localhost', port=3306, user='root', passwd='root', db='test_csv', charset='utf8') return conn def insert(cur, sql, args): c

  • Navicat for MySql可视化导入CSV文件

    本文为大家分享了Navicat for MySql可视化导入CSV文件的具体代码,供大家参考,具体内容如下 版本号:Navicate 12 1.创建一个数据库,右键单击表,导入向导import Wizard. 2.选择导入的数据文件格式,next-> 3.选择要导入的.csv文件,注意编码格式与文件编码格式一样否则会出现乱码,然后进行下一步 4.选择需要的分隔符,我用的Linux,所以record delimiter这个记录分隔符为LF,来表示下一行 5.根据你的csv文件内容来调整,field

  • Navicat把csv数据导入mysql

    本文为大家分享了如何用Navicat把csv数据导入mysql,供大家参考,具体内容如下 1.获取csv数据,用office另存为功能把excel另存为csv(当然这是我自己数据本身是存在excel里的缘故,如果你本来就是csv数据,则忽略这一步.) 2.用Navicat进行导入:随便建立一个数据库,然后在表那里点击导入向导 选csv 然后一直下一步,然后你会看见. 此刻导入成功. 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们.

  • MySQL如何导入csv格式数据文件解决方案

    给自己做备份的,高手们请忽略. 数据太大,用数据库客户端软件直接导入非常卡,还是直接执行SQL吧. 1.指定文件路径. 2.字段之间以逗号分隔,数据行之间以\r\n分隔(我这里文件是以\n分隔的). 3.字符串以半角双引号包围,字符串本身的双引号用两个双引号表示. Sql代码 复制代码 代码如下: load data infile 'D:\\top-1m.csv' into table `site` fields terminated by ',' optionally enclosed by

  • 使用navicat将csv文件导入mysql

    本文为大家分享了使用navicat将csv文件导入mysql的具体代码,供大家参考,具体内容如下 1.打开navicat,连接到数据库并找到自己想要导入数据的表.数据库表在指定数据库下的表下. 2.右键点击数据表.点击import wizard. 3.选择要导入数据的文件类型,本文以csv文件为例,选中csv文件. 4.接下来选择文件所在位置.可以点击第一个空输入框后的省略号,可以通过浏览文件系统定位自己的文件.下边的编码选择与你的文件一样的编码. 5.第一个选项为记录分割,可以使用默认的,第二

  • mysql使用SQLyog导入csv数据不成功的解决方法

    今天给mysql导入数据,使用的软件是SQLyog,相信直接导大家也都会,选中某个表选择导入--导入使用本地csv数据即可,单有的时候不知道什么问题导入不成功,可以使用命令,以此记录,以后用到便于查: (我的是windows系统) LOAD DATA LOCAL INFILE 'C:\\Users\\zl\\Desktop\\zhishu.csv' INTO TABLE 库名.表名 CHARACTER SET gbk FIELDS TERMINATED BY ',' OPTIONALLY ENC

  • MySql导入CSV文件或制表符分割的文件

    有时候我们会有这样的需求,需要把一些数据从别的库导入到另外的一个库中,而这些数据是用CSV文件存放的.对于MySql数据库我们有两种方式:一种是用命令来导入,另一种是很多的MySql客户端(如Heidisql.Sequel pro)为我们提供了这样的功能.下面我们来分别介绍着两种导入方式. MySql命令导入 准备工作: 先建一个表: 建表语句如下: CREATE TABLE `city_china` ( `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT

  • php将csv文件导入到mysql数据库的方法

    本文实例讲述了php将csv文件导入到mysql数据库的方法.分享给大家供大家参考.具体分析如下: 本程序实现数据导入原理是先把csv文件上传到服务器,然后再通过php的fopen与fgetcsv文件把数据保存到数组,然后再用while把数据一条条插入到mysql数据库,代码如下: 复制代码 代码如下: <?php $fname = $_files['myfile']['name']; $do = copy($_files['myfile']['tmp_name'],$fname); if ($

随机推荐