MySQL系列之 - mysqldump的使用

1.mysqldump简介

mysqldump是mysql自带的逻辑备份工具,是mysql的客户端命令。备份原理是通过mysql协议连接到mysql服务器,将需要备份的数据查询出来,将查询出的数据转换成对应的insert等sql语句,使用时,再执行sql语句,即可将对应的数据还原。

2.备份命令

2.1命令格式

mysqldump的几种语法形式:

Dumping structure and contents of MySQL databases and tables.
Usage: mysqldump [OPTIONS] database [tables]
OR     mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR     mysqldump [OPTIONS] --all-databases [OPTIONS]

ps:补充说明

  • mysqldump [OPTIONS] database [tables]支持指定数据库和指定多表备份,但数据库本身定义不备份,意味着还原时候要先创建一模一样的库名;
  • mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]支持指定数据库备份,包含数据库本身定义也会备份;
  • mysqldump [OPTIONS] --all-databases [OPTIONS]备份所有数据库,包含数据库本身定义也会备份;

mysqldump参考:
https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html

2.2常用选项说明

参数名 简写 含义
--host -h 服务器主机IP地址
--port -p 服务器mysql端口号
--user -u mysql用户名
--password -p mysql密码
--databases -B 指定备份数据库,包括create database语句
--all-databases -A 备份mysql服务器所有数据库,含create database语句
--compact 压缩模式,产生更少的输出
--comments -i 添加注释信息
--complete-insert -c 输出完成的插入语句
--no-data -d 只备份表结构,不备份数据
--no-create-info -t 只备份数据,不备份表结构
--flush-privileges 备份mysql或相关是需要使用
--quick -q 不缓存查询,直接输出,加快备份速度
--lock-tables -l 备份前,锁定所有数据库表
--no-create-db -n 禁止生成创建数据库语句
--force -f 当出现错误时仍然继续备份操作
--default-character-set 指定默认字符集
--add-locks 备份数据库时锁定数据库表
--verbose -v 备份时打印各阶段信息

PS:更多信息,请查看man、help帮助,执行命令: mysqldump --helpman mysqldump

2.3实例用法

1.备份所有数据库(包括mysql和test):

mysqldump -uroot -ppwd --all-databases > /backup/mysqldump/alldb.sql

2.备份指定数据库:

mysqldump -uroot -ppwd mydb > /backup/mysqldump/mydb.sql

3.备份指定数据库指定表(多个表以空格隔开):

mysqldump -uroot -ppwd mysql user event > /backup/mysqldump/mysqltable.sql

4.备份指定数据库排除某些表:

mysqldump -uroot -ppwd mydb --ignore-table=mydb.tb1 --ignore-table=mydb.tb2 > /backup/mysqldump/mydbtb.sql

3.还原命令

3.1系统行命令

[root@mysql ~]# mysqladmin -uroot -ppwd create db_name
[root@mysql ~]# mysql -uroot -ppwd db_name < /backup/mysqldump/db_name.sql

PS: 导入备份数据库前,先确认是否有数据库db_name,若没有需要创建,且要与db_name.sql中数据库名保持一致

3.2 source用法

[root@mysql ~]# mysql -uroot -p
mysql> use db_name
mysql> source /backup/mysqldump/db_name.sql

posted on 2021-07-15 17:08  hony625  阅读(463)  评论(0编辑  收藏  举报

导航