暂无图片
暂无图片
6
暂无图片
暂无图片
2
暂无图片

MySQL导入N种实现方式

原创 aisql 2024-03-06
668

导入数据的语句

set character_set_client = utf8; use sakila; drop table stt; create table stt ( id int not null, str1 char(10) not null, str2 varchar(60) not null, str3 varchar(70) not null, primary key(id) ) engine = InnoDB default charset = utf8mb4 ROW_FORMAT=COMPACT ; insert into stt values(2,'abcd22','!&','我爱中国');
复制

将上述语句存为 testimport.sql

a.命令行 mysql

在cmd中执行

mysql -uroot -p123 -Dsakila <C:\Users\86136\Downloads\testimport.sql
复制

-D 为执行数据库,如果SQL语句中没有显示use 指定数据库,命令行也没有加 -D 那么导入将报错

ERROR 1046 (3D000) at line 1: No database selected

如果没有执行字符集,有可能导致导入乱码
image.png

有一个小坑 在windows中要用cmd模式。不要用Powershell模式,否则会报错 不能识别<符号
image.png

所以建议:
1、 在SQL中显示指定character_set_client并放在最前面
2、 在SQL显示用use指定数据库,这样命令行就无需-D参数了。

b.命令行 source

先用mysql登陆后
执行

source C:\Users\86136\Downloads\testimport.sql
复制

source与mysql执行的区别是source能看到每个语句的结果
image.png

c.命令行 load data

准备好导入的文件aaa.csv
image.png

执行如下语句

load data local infile 'C:\\Users\\86136\\Downloads\\aaa.csv' into table sakila.stt fields terminated by ',' enclosed by '"' ignore 1 lines;
复制

ERROR 3948 (42000): Loading local data is disabled; this must be enabled on both the client and server sides

报如上错误,在服务端开启

set global local_infile = on;
复制

继续执行上述命令

ERROR 2068 (HY000): LOAD DATA LOCAL INFILE file request rejected due to restrictions on access.

继续报错,在客户端登陆的时候加上 --local-infile=1 参数

mysql -uroot -hlocalhost -p --local-infile=1
复制

再次执行上述命令

ERROR 1300 (HY000): Invalid utf8mb4 character string: ‘?\04B0’

将csv格式 用notepad++ 编码改为 utf-8
终于导入成功

Load命令要注意以下几点
如果参数使用local即本地导入
1、需要在服务器端设置 set global local_infile = on
2、客户端登陆的时候加上 --local-infile=1 参数

Load几个重要参数解释
fields terminated by 指定分隔符
enclosed by 去掉包裹符 比如"abc" enclosed by’"’ 后导入的就只剩abc
escaped by 设置转义符
ignore N lines 忽略N行
(col1,col2) 手动指定匹配的列

load data local infile 'C:\\Users\\86136\\Downloads\\aaa.csv' into table sakila.stt character set utf8mb4 fields terminated by ',' enclosed by '"'   ignore 1 lines (id,str3,str2,str1);
复制

load data 官方文档

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

yBmZlQzJ
暂无图片
1年前
评论
暂无图片 0
MySQL导入N种实现方式
1年前
暂无图片 点赞
评论
Witz
暂无图片
1年前
评论
暂无图片 0
1年前
暂无图片 点赞
评论