Linux 用 shell 脚本 批量 导入 csv 文件 到 mysql 数据库 单个sql文件导入导出

批量 导入 csv 文件

前提:

  • 每个csv文件第一行为字段名
  • 创建的数据库字段名同csv 文件的字段名

  • 导入一个 csv 文件
mysql --local-infile -uusename -ppassword databasename -e "LOAD DATA LOCAL INFILE '1.csv' INTO TABLE tablename FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n'"

注:

(‘,’ 和 ‘\r\n’ 是根据你的csv 文件决定的 第一个是 字段分割的标志,第二个是行分割的标志)
(–local-infile: 没有这个会报错【ERROR 1148 (42000) at line 1: The used command is not allowed with this MySQL version】)

  • 批量导入 多个 csv 文件
for file in ./*.csv;do mv $file tablename.csv;mysqlimport --local --fields-terminated-by="," -uusename -ppassword databasename tablename.csv;rm tablename.csv;done

注:

改脚本在导入数据的同时会删除文件 别忘记在导入数据库前备份文件啊


.sql文件导入导出

导出:
1、导出数据和表结构:
mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql

mysqldump -uroot -p dbname > dbname .sql

敲回车后会提示输入密码
2、只导出表结构
mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql

mysqldump -uroot -p -d dbname > dbname .sql

导入:
1、首先建空数据库

mysql>create database dbname ;

2、导入数据库
方法一:
(1)选择数据库

mysql>use dbname ;

(2)设置数据库编码

mysql>set names utf8;

(3)导入数据(注意sql文件的路径)

mysql>source /home/xxxx/dbname .sql;

方法二:

mysql -u用户名 -p密码 数据库名 < 数据库名.sql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值