作者公众号,欢迎一起交流。
mysqldump命令是MySQL自带的客户端程序,可用于对数据库进行备份,由于是逻辑备份,故可以看到备份的内容是有一系列的SQL语句组成,并可根据实际情况对备份内容进行修改。当然,使用mysqldump进行数据库备份,需要对应的权限,比如备份表,至少需要对表的select权限,备份视图,需要对视图的show view权限,同样的,将备份重新加载进数据库,也需要相应的权限,本篇将对mysqldump命令进行一个详细的介绍。
1 语法结构
使用mysqldump进行数据库备份有三种方法,默认时将导出的SQL语句输出到屏幕,可将其保存到文件中,用法分别是:
Usage: mysqldump [OPTIONS] database [tables]
OR mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
OR mysqldump [OPTIONS] --all-databases [OPTIONS]
1.1 mysqldump [OPTIONS] database [tables]
用于导出某个数据库或表,在导出的脚本中,没有create database和use语句,在重新导入时,可指定数据库,若没有数据库,则需要提前进行创建。
1.2 mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]
用于导出特定的数据库,--databses选项指定后面所导出的数据库列表,以空格分割,在每个数据库导出之前,在导出的脚本中会写create database和use语句,用于数据库的创建和指定要操作的库,在导入时如果数据库不存在,则会进行创建。
1.3 mysqldump [OPTIONS] --all-databases [OPTIONS]
用于导出所有数据库,默认不会导出performance_schema、sys,也不会导出information_schema,若需要导出时,需指定--databases选项。
2 选项说明
mysqldump的选项有很多,可使用mysqldump --help进行查看,选项有两种格式,一种是长格式,一种是短格式,这里将对选项进行说明。
2.1 帮助选项
使用mysqldump时,可通过以下选项展示帮助信息:
- -?, --help:展示帮助信息
- -V, --version:展示版本信息
2.2 数据库连接选项
要dump数据,需要先连接到数据库,那么对应的选项分别如下:
- --bind-address=name:当服务器有多个网卡时,使用该选项绑定要连接MySQL服务器的网卡
- -C,--compress:压缩客户端和服务器间发送的信息,MySQL 8.0.18后废弃该选项
- --compress-algorithms=name:MySQL 8.0.18新增,指定压缩的算法,默认是uncompressed,压缩算法包括:zstd、ziib、uncompressed
- --default-auth=name:客户端使用的默认认证插件
- --enable-cleartext-plugin:激活/禁用mysql_clear_password认证插件
- -h,--host=name:指定连接的主机名或IP,默认主机是localhost
- --login-path=#:在.mylogin.cnf登录路径文件读取选项,创建或修改登录文件,需使用mysql_config_editor工具
- -p,--password[=name]:指定连接数据库的密码
- -