最近用数据库的过程中,导入导出操作比较频繁,基本上都是用命令行导入的,对版本的切换,数据格式的修改,都有操作,应该讲比工具好用很多,顺手记录了一下。
1.操作
1.1导入
1、mysql 命令导入
1 | mysql -h host -u用户名 -p密码 数据库名 < 要导入的数据库数据(database-name.sql) |
1 | # example |
如果数据库未创建,需先创建好
1 | mysql > create database [ IF NOT EXISTS ] db-name default charset utf8mb4 collate utf8mb4_unicode_ci; |
再执行导入命令.
2、source 命令导入
1 | # login |
注意 utf8mb4 基本为8.0以后的字符用法, 以前都是utf8, 在sql脚本中全局替换即可使用. MySQL5.7 可用下面方式
1 | mysql> create database db-name default charset utf8 collate utf8_unicode_ci; |
3、使用 LOAD DATA 导入数据
1 | mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl; |
4、使用 mysqlimport 导入数据
1 | $ mysqlimport -u root -p --local mytbl dump.txt |
关于3/4 的具体用法, 点击参考.
1.2导出
解决导出限制
为了方便,直接设置所有路径都可以, Diable secure-file-priv variable.
1 | $ sudo vim /etc/my.cnf |
reference
操作
使用 SELECT … INTO OUTFILE 语句导出数据
1 | mysql> SELECT * FROM runoob_tbl |
导出表作为原始数据
导出某个表结构:mysqldump -h localhost -u root -p -d 数据库名 表名 > 导出的sql文件存放路径,例如:
1 | mysqldump -h localhost -u root -p -d test student > ./student.sql |
- -d 表示只导出表结构
导出某个表结构及数据:mysqldump -h localhost -u root -p 数据库名 表名 > 导出的sql文件存放路径,例如:
1 | mysqldump -h localhost -u root -p test student > ./student.sql |
导出某个表数据:mysqldump -h localhost -u root -p -t 数据库名 表名 > 导出的sql文件存放路径,例如:
1 | mysqldump -h localhost -u root -p -t test student > ./student.sql |
- -t 导出数据,不要结构
从其他主机导出数据库
mysqldump -h localhost -u root -p 数据库名 > 导出的sql文件存放路径,例如:
1 | mysqldump --column-statistics=0 -h 172.16.37.88 -uroot -p --hex-blob test > ./test.sql |
- –hex-blob: 解决中文乱码问题
- –column-statistics=0 新版的mysqldump默认启用了一个新标志,通过- -column-statistics=0来禁用
将数据表及数据库拷贝至其他主机
具体请查看参考链接.
2.reference
- 本文作者: Linking
- 本文链接: https://linking.fun/2021/05/15/MySQL数据导入导出命令/
- 版权声明: 版权所有,转载请注明出处!