导入导出centos7服务器上mysql表的csv文件

公司的数据存放在linux集群下,前几天需要导出几张表,顺便记录下导出过程留已以后再用。

一、表导出成csv
1.导出文件不带列名
导出数据表中的数据到CSV文件:

select  *  from  table_name  into outfile "/tmp/xxxx.csv" fields terminated by ',' lines terminated by '\n';

linux下直接用文本编辑器打开,windows下支持用Excel文件格式来打开,打开文件发现只有数据,没有表头。
2.导出文件带列名
带上表头导出数据到CSV文件:

select * into outfile '/tmp/xxxx.csv' fields terminated by ',' lines terminated by '\n' from (select 'col1','col2','col3','col4' union select column1,column2,column3,column4 from table_name) b;

打开导出的文件就能看到对应的表头了。
eg:远程mysql连接导出时文件会生成在原数据所在的服务器上,默认会导出为/home/mysql_data/tmp/xxxx.csv文件。

二、linux传输远程服务器上的文件
假如需要将服务器A上的文件传到服务器B上
scp -p 【A上的文件名】 【服务器B的ip】:/tmp

三、用u盘将linux服务器上的数据拷贝下来,这里是使用centos7系统
1.fdisk -l命令查看一下U盘是否有被识别到,及识别的U盘是在哪个位置,假设u盘位置是/dev/Sdb4
2.挂载u盘到/mnt目录下 mount /dev/sdb4 /mnt
3.复制服务器上的文件到u盘里cp /home/xxx.csv /mnt
4.退出u盘umount /mnt

eg:方法二走网络传输耗时,方法三u盘传输快一些。

四、将csv文件命令行导回数据库里

1.首先切换到要导回的数据库下

//1.连接mysql数据库
mysql -h数据库所在服务器ip -u用户名 -p密码;
//2.显示所有的数据库名
show databases;
//3.切换到要导回的数据库下
use 数据库名;

2.执行load data语句,下面简单介绍下用到的关键字作用,博主这里列举的不全,没有写设置字符编码或者忽略第一行等等,只是一些自己用到的。

[local]导入时指定local关键字,表示文件放在客户端主机上。若不指定代表在服务器主机上读取本地文件。
[replace 和 ignore]

            [replace]与唯一键重复的行将被覆盖更新。

            [ignore]与唯一键重复的行将被忽略。

[terminated by]csv或者txt文件中字段之间的分割符

[optionally enclosed by]字段以什么符号结束,默认是'',有时会设置为','

[enclosed by]字段以什么符号开始,默认是'',有时会设置为','

[lines terminated by]行与行之间以什么分隔,window下为'/r/n',linux下为'/n'

3.一个导入csv文件的demo,导出的文件格式为[一、表导出成csv1.导出文件不带列名]

//1.连接mysql数据库
mysql -uroot -proot;
//2.显示所有的数据库名
show databases;
//3.切换到要导回的数据库下
use test;
//linux服务器下将客户端主机上tmp下xxxx.csv文件导入到test数据库下 demo 表中,以逗号分隔,每个字段的开始字符和结束字符均为空
load data local infile '/tmp/xxxx.csv' replace into table demo fields terminated by ',' optionally enclosed by '' escaped by '' lines terminated by '\n';

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值