-

MySQL导入导出txt文本

MySQL

在实际WEB开发的过程中,MySQL从文本中导入数据或导出数据到文本是非常常见的操作之一。其实MySQL当初设计的时候就已经考虑了这一需求,下面雷雪松详细的讲解下如何在MySQL中导入导出txt文本。

1、在MySQL数据库中创建一个用户表user,包含三个最基础字段:主键id,姓名name和年龄age。
[cc lang=”sql”]create table user(
id int unsigned NOT NULL AUTO_INCREMENT,
name varchar(32) not null,
age tinyint unsigned,
PRIMARY KEY (id)
)ENGINE=InnoDB CHARSET=utf8; [/cc]

2、制作一个user.txt文件,每一条内容用Tab键进行分隔不同的属性,多条换行。如果该字段为NULL,则用/N表示。 里面包含内容如下:
[cc lang=”text”]雷雪松 31
raykaeso 25
leixuesong 45
barbie /N[/cc]

3、使用MySQL命令导入txt文本,指定本地路径和对应表中的字段。
[cc lang=”sql”]load data local infile “H:/user.txt” into table user(name,age); [/cc]
注意:导入前一定要查看MySQL数据库的编码是否全部为utf8,否则会乱码
[cc lang=”sql” escaped=”true”]mysql> show variables like ‘%char%’;
+————————–+———————————————–+
| Variable_name | Value |
+————————–+———————————————–+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | d:\wamp\bin\mysql\mysql5.6.17\share\charsets\ |
+————————–+———————————————–+
8 rows in set[/cc]

4、使用MySQL命令导出txt文本,字段之间的分隔默认是/t(即Tab),记录(行)之间的分隔默认是/n(换行)。
[cc lang=”sql”]select name,age into outfile “H:/user.txt” from user; [/cc]

5、使用MySQL命令导出csv文件
[cc lang=”sql”]select name,age into outfile fields terminated by ‘,’ “H:/user.txt” from user; [/cc]

6、导出时报错“ERROR 1290 (HY000): The MySQL server is running with the –secure-file-priv option so it cannot execute this statement”
解决办法有两种:
1、进入MySQL命令行输入命令show variables like ‘%secure%’;查看允许导出文件的目录,那么导出时的路径只能在这个目录下。
2、在MySQL配置文件,my.ini中将这个secure-file-priv的值设置为空:secure-file-priv=“”,重启MySQL就可以在任意目录下导出文件。

来源:MySQL导入导出txt文本

MySQL导入导出txt文本” 评论

    吾读 评论:
    2019年5月10日 下午8:26

    非常精彩的文章,引人入胜,痛快淋漓。感谢楼主分享。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注