本文共 2818 字,大约阅读时间需要 9 分钟。
MySQL mysqldump 导入/导出 结构&数据&存储过程&函数&事件&触发器
一、使用mysqldump导出/导入sql数据文件二、使用infile/outfile导入/导出txt/csv数据文件
———————————————-库操作———————————————-
1.①导出一个库结构mysqldump -d dbname -u root -p > xxx.sql
②导出多个库结构mysqldump -d -B dbname1 dbname2 -u root -p > xxx.sql
2.①导出一个库数据
mysqldump -t dbname -u root -p > xxx.sql
②导出多个库数据mysqldump -t -B dbname1 dbname2 -u root -p > xxx.sql
3.①导出一个库结构以及数据
mysqldump dbname1 -u root -p > xxx.sql
②导出多个库结构以及数据mysqldump -B dbname1 dbname2 -u root -p > xxx.sql
———————————————-表操作———————————————-
4.①导出一个表结构mysqldump -d dbname1 tablename1 -u root -p > xxx.sql
②导出多个表结构mysqldump -d -B dbname1 --tables tablename1 tablename2 -u root -p > xxx.sql
5.①导出一个表数据
mysqldump -t dbname1 tablename1 -u root -p > xxx.sql
②导出多个表数据mysqldump -d -B dbname1 --tables tablename1 tablename2 -u root -p > xxx.sql
6.①导出一个表结构以及数据
mysqldump dbname1 tablename1 -u root -p > xxx.sql
②导出多个表结构以及数据mysqldump -B dbname1 --tables tablename1 tablename2 -u root -p > xxx.sql
————————————–存储过程&函数操作————————————-
7.只导出存储过程和函数(不导出结构和数据,要同时导出结构的话,需要同时使用-d)mysqldump -R -ndt dbname1 -u root -p > xxx.sql
———————————————-事件操作———————————————-
8.只导出事件mysqldump -E -ndt dbname1 -u root -p > xxx.sql
—————————————–触发器操作——————————————–
9.不导出触发器(触发器是默认导出的–triggers,使用–skip-triggers屏蔽导出触发器)mysqldump --skip-triggers dbname1 -u root -p > xxx.sql
————————————————————————————————
10.导入source xxx.sql
————————————————————————————————
总结一下:-d 结构(–no-data:不导出任何数据,只导出数据库表结构)
-t 数据(–no-create-info:只导出数据,而不添加CREATE TABLE 语句)
-n (–no-create-db:只导出数据,而不添加CREATE DATABASE 语句)
-R (–routines:导出存储过程以及自定义函数)
-E (–events:导出事件)
–triggers (默认导出触发器,使用–skip-triggers屏蔽导出)
-B (–databases:导出数据库列表,单个库时可省略)
–tables 表列表(单个表时可省略)
①同时导出结构以及数据时可同时省略-d和-t ②同时 不 导出结构和数据可使用-ntd ③只导出存储过程和函数可使用-R -ntd ④导出所有(结构&数据&存储过程&函数&事件&触发器)使用-R -E(相当于①,省略了-d -t;触发器默认导出) ⑤只导出结构&函数&事件&触发器使用 -R -E -dPS:如果可以使用相关工具,比如官方的MySQL Workbench,则导入导出都是极为方便的,如下图。(当然为了安全性,一般情况下都是屏蔽对外操作权限,所以需要使用命令的情况更多些)
————————————————————————————————
下面为使用infile/outfile导入/导出txt/csv数据文件操作
10.①首先使用语句看一下可以导入/导出的路径在哪里
show variables like ‘%secure%’;
表示导入/导出只能存放在E:/下面。
②如果不按照对应路径进行操作的话,将报如下错误:
Error Code: 1290. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
③如果还有权限问题,请修改my.ini将secure_file_priv设置到有权限的路径下
11.对csv/txt数据导入和导出
①导出csv数据
select *
into outfile ‘E:/table1_data.csv’ character set gb2312 fields terminated by ‘,’ optionally enclosed by ‘"’ escaped by ‘"’ lines terminated by ‘\r\n’ from table1;②导入csv数据
load data infile ‘E:/table1_data.csv’
into table table1 character set gb2312 fields terminated by ‘,’ optionally enclosed by ‘"’ escaped by ‘"’ lines terminated by ‘\r\n’;③导出txt数据
默认使用空格作为分隔符,需要其它参数请参考上面的csv操作
select *
into outfile ‘E:/table1_data.txt’ from table1;④导入txt数据
load data infile ‘E:/table1_data.txt’
into table table1;转载地址:http://mkrkf.baihongyu.com/