MySQL学习——使用mysqldump命令备份和还原

摘要:本文主要学习了如何使用mysqldump命令备份和还原数据库。

导出数据

导出全部数据

参数:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。
1 --all-databases, -A

举例:

1 mysqldump -h127.0.0.1 -uroot -p --all-databases > db_back.sql

导出指定的数据库

参数:

1 --databases, -B

举例:

1 mysqldump -h127.0.0.1 -uroot -p --databases test mysql > db_back.sql

导出指定表

只能针对一个数据库进行导出,并且导出的内容中没有创建数据库的判断语句。

参数:

1 --tables

举例:

1 mysqldump -h127.0.0.1 -uroot -p --databases test --tables demo user > db_back.sql

导出全部表空间

参数:

1 --all-tablespaces, -Y

举例:

1 mysqldump -h127.0.0.1 -uroot -p --all-databases --all-tablespaces > db_back.sql

不导出表空间信息

参数:

1 --no-tablespaces, -y

举例:

1 mysqldump -h127.0.0.1 -uroot -p --all-databases --no-tablespaces > db_back.sql

忽略指定表

不导出指定表。指定忽略多个表时,需要重复多次,每次一个表,每个表必须同时指定数据库和表名。

参数:

1 --ignore-table

举例:

1 mysqldump -h127.0.0.1 -uroot -p --all-databases --ignore-table=database.table1 --ignore-table=database.table2 > db_back.sql

在每个数据库创建前添加删除数据库语句

参数:

1 --add-drop-database

举例:

1 mysqldump -h127.0.0.1 -uroot -p --all-databases --add-drop-database > db_back.sql

在每个表创建前添加删表语句

默认为打开状态,使用 --skip-add-drop-table 参数取消。

参数:

1 --add-drop-table// 添加删表操作。
2 –-skip-add-drop-table// 取消删表操作。

举例:

1 mysqldump -h127.0.0.1 -uroot -p --all-databases > db_back.sql// 默认添加删表操作。
2 mysqldump -h127.0.0.1 -uroot -p --all-databases --skip-add-drop-table > db_back.sql//取消删表操作。

不添加创建数据库语句

参数:

1 --no-create-db, -n

举例:

1 mysqldump -h127.0.0.1 -uroot -p --all-databases --no-create-db > db_back.sql

不添加创建数据表语句

参数:

1 --no-create-info, -t

举例:

1 mysqldump -h127.0.0.1 -uroot -p --all-databases --no-create-info > db_back.sql

不导出数据只导出结构

参数:

1 --no-data, -d

举例:

1 mysqldump -h127.0.0.1 -uroot -p --all-databases --no-data > db_back.sql

导出存储过程以及自定义函数

参数:

1 --routines, -R

举例:

1 mysqldump -h127.0.0.1 -uroot -p --all-databases --routines > db_back.sql

在每个表导出前锁表并在导出后解锁

默认为打开状态,使用 --skip-add-locks 参数取消。

参数:

1 --add-locks// 添加锁表和解锁操作。
2 --skip-add-locks// 取消锁表和解锁操作。

举例:

1 mysqldump -h127.0.0.1 -uroot -p --all-databases > db_back.sql// 默认添加锁表和解锁操作。
2 mysqldump -h127.0.0.1 -uroot -p --all-databases --skip-add-locks > db_back.sql// 取消锁表和解锁操作。

设置字符集文件的目录

默认是utf8。

参数:

1 --default-character-set

举例:

1 mysqldump -h127.0.0.1 -uroot -p --all-databases --default-character-set=latin1 > db_back.sql

设置字符集文件的目录

参数:

1 --character-sets-dir

举例:

1 mysqldump -h127.0.0.1 -uroot -p --all-databases --character-sets-dir=/data/mysql/share/charsets > db_back.sql

在客户端和服务器之间启用压缩传递所有信息

参数:

1 --compress, -C

举例:

1 mysqldump -h127.0.0.1 -uroot -p --all-databases --compress > db_back.sql

连接数据库的端口号

参数:

1 --port, -P

举例:

1 mysqldump -h127.0.0.1 -uroot -p --all-databases --port=3306 > db_back.sql

使用的连接协议

参数:

1 --protocol

举例:

1 mysqldump -h127.0.0.1 -uroot -p --all-databases --protocol=tcp > db_back.sql

处理换行

直接输出到指定文件中。该选项应该用在使用回车换行对(\\r\\n)换行的系统上(例如:DOS,Windows)。该选项确保只有一行被使用。

参数:

1 --result-file, -r

举例:

1 mysqldump -h127.0.0.1 -uroot -p --all-databases --result-file=/tmp/mysqldump_result_file.txt > db_back.sql

添加导出时间

将导出时间添加到输出文件中。默认为打开状态,使用 --skip-dump-date 参数取消。

参数:

1 --dump-date// 将导出时间添加到输出文件中。
2 --skip-dump-date// 不将导出时间添加到输出文件中。

举例:

1 mysqldump -h127.0.0.1 -uroot -p --all-databases// 默认将导出时间添加到输出文件中。
2 mysqldump -h127.0.0.1 -uroot -p --all-databases --skip-dump-date// 不将导出时间添加到输出文件中。

只导出符合指定条件的记录

如果条件包含命令解释符专用空格或字符,一定要将条件引用起来。

参数:

1 --where, -w

举例:

1 mysqldump -h127.0.0.1 -uroot -p --all-databases --where=" id=1 limit 10"

合并多个插入语句

参数:

1 --extended-insert// 合并多个插入语句。
2 --skip-extended-insert// 取消合并多个插入语句。

举例:

1 mysqldump -h127.0.0.1 -uroot -p --all-databases --extended-insert// 默认合并多个插入语句。
2 mysqldump -h127.0.0.1 -uroot -p --all-databases --skip-extended-insert// 取消合并多个插入语句。

使用完整的插入语句

使用包含列名称的完整插入语句。这么做能提高插入效率,但是可能会受到max_allowed_packet参数的影响而导致插入失败。

参数:

1 --complete-insert, -c

举例:

1 mysqldump -h127.0.0.1 -uroot -p --all-databases --complete-insert

服务器发送和接受的最大包长度

参数:

1 --max_allowed_packet

举例:

1 mysqldump -h127.0.0.1 -uroot -p --all-databases --max_allowed_packet=10240
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄