linux下

1 导出一个数据库的结构

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

2 导出多个数据库的结构

mysqldump -d -B dbname1 dbname2 -uroot -p > dbname.sql

3 导出一个数据库中数据(不包含结构)

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

4 导出多个数据库中数据(不包含结构)

mysqldump -t -B dbname1 dbname2 -uroot -p > dbname.sql

5 导出一个数据库的结构以及数据

mysqldump dbname -uroot -p > dbname.sql

6 导出多个数据库的结构以及数据

mysqldump -B dbname1 dbname2 -uroot -p > dbname.sql

7 导出一个数据库中一个表的结构

mysqldump -d dbname1 tablename -uroot -p > tablename.sql

8 导出一个数据库中多个表的结构

mysqldump -d -B dbname1 –tables tablename1 tablename2 -uroot -p > tablename.sql

9 导出一个数据库中一个表的数据(不包含结构)

mysqldump -t dbname1 tablename -uroot -p > tablename.sql

10 导出一个数据库中多个表的数据(不包含结构)

mysqldump -t -B dbname1 –tables tablename1 tablename2 -uroot -p > tablename.sql

11 导出一个数据库中一个表的结构以及数据

mysqldump dbname1 tablename -uroot -p > tablename.sql

12 导出一个数据库中多个表的结构以及数据

mysqldump -B dbname1 –tables tablename1 tablename2 -uroot -p > tablename.sql

存储过程&函数操作

1 只导出存储过程和函数(不导出结构和数据,要同时导出结构的话,需要同时使用-d)

mysqldump -R -ndt dbname -u root -p > dbname.sql

2 只导出事件

mysqldump -E -ndt dbname -u root -p > dbname.sql

3 不导出触发器(触发器是默认导出的–triggers,使用–skip-triggers屏蔽导出触发器)

mysqldump –skip-triggers dbname1 -u root -p > dbname.sql

把导出的数据导入到数据库

mysql -u root -p
use dbname;
source dbname.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 -d
二、导入数据库
1、首先建空数据库
mysql>create database abc;

2、导入数据库
方法一:
(1)选择数据库
mysql>use abc;
(2)设置数据库编码
mysql>set names utf8;
(3)导入数据(注意sql文件的路径)
mysql>source /home/abc/abc.sql;
方法二:
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
#mysql -uabc_f -p abc < abc.sql

 

三 . shell mode:

mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql
备份MySQL数据库为带删除表的格式
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。

mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql
直接将MySQL数据库压缩备份

mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz
备份MySQL数据库某个(些)表

mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql
同时备份多个MySQL数据库

mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql
仅仅备份数据库结构

mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql
备份服务器上所有数据库

mysqldump –all-databases > allbackupfile.sql
还原MySQL数据库的命令

mysql -hhostname -uusername -ppassword databasename < backupfile.sql
还原压缩的MySQL数据库

gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
将数据库转移到新服务器

mysqldump -uusername -ppassword databasename | mysql –host=... -C databasename