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

②导出多个库结构以及数据

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  红色部分前面不要有空格,否则报错。

 注意一下 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                                   
unix  2      [ ACC ]     STREAM     LISTENING     70442911 /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   

 

你可能感兴趣的:(mysql)