总结一下:
-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
-------------------------------压缩----------------------------------
压缩并导出数据库命令:
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命令时候报如下错误: 找到正确的套接字的路径: 执行成功,但有警告信息,提示使用sock前辍将在后继版本中可能不再支持,请使用全名 将--sock 换成--socket将不再有问题: [root@localhost ~]# mysqldump --socket=/MysqlData/base/mysql/mysql.sock -uroot -p -d test> test.sql
[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: