MySQL mysqldump 导入/导出 结构&数据&存储过程&函数&事件&触发器

总结一下:
-h 主机
-P端口
-u用户名
-p密码 (注意不能有空格)
--ignore-table忽略表不到出 举例----ignore-table=dataname.table1 --ignore-table=dataname.table2
-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.①导出一个库结构
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
【MySQL mysqldump 导入/导出 结构&数据&存储过程&函数&事件&触发器】②导出多个库结构以及数据
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

-------------------------------压缩----------------------------------

  1. 压缩并导出数据库命令:
  2. mysqldump -h主机IP -u数据库用户名 -p数据库密码 数据库名称 | gzip > /导出目录/test.sql.gz
---------------------导出全部-------------------
$Mysql_PATH/mysqldump -R -E --triggers-u$Mysql_User -p$Mysql_password -P$Mysql_Port --databases xx| gzip > $DumpFile
————————————————————————————————
10.导入
mysql -u root -p
use game;
source xxx.sql

或者
mysq -uroot -p123456 -h127.0.0.4 -P3306数据库名 注意这个命令 数据库名 注意一下 xx.sql 里面的,当全库备份的sql文件,里面会有use dbname,这样就不可以把备份的数据导入其他库,会自动导入xx.sql 里面的dbname中。
可以使用sed 将xx.sql 里面 dbname相关删除后,就可以导入指定测试库了。
cat /data/2.sql |sed '/CREATE DATABASE.*/d' |sed '/USE `zcy`; /d' >3.sql

报错:
mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect
https://blog.csdn.net/seteor/article/details/18356079

在执行mysqldump命令时候报如下错误:
[root@localhost ~]#mysqldump -uroot -p -d test> test.sql
mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) when trying to connect
找到正确的套接字的路径:
[root@localhost ~]#netstat -ln | grep mysql
unix2[ ACC ]STREAMLISTENING70442911 /MysqlData/base/mysql/mysql.sock

再运行dump命令:
[root@localhost ~]# mysqldump --sock=/MysqlData/base/mysql/mysql.sock -uroot -p -d test> test.sql
Warning: Using unique option prefix sock instead of socket is deprecated and will be removed in a future release. Please use the full name instead.
Enter password:
执行成功,但有警告信息,提示使用sock前辍将在后继版本中可能不再支持,请使用全名
将--sock 换成--socket将不再有问题:
[root@localhost ~]# mysqldump --socket=/MysqlData/base/mysql/mysql.sock -uroot -p -d test> test.sql

    推荐阅读