MySQL简单备份与恢复

说明:以下导入导出均在同一版本的MySQL数据库中进行,比如5.7.25与5.7.33;至于不同大版本之间如5.6与5.7或者8.0之间暂未实践。
提醒:导入之前务必备份。

一、导出

提示:mysqldump: [Warning] Using a password on the command line interface can be insecure.(不用管)

方法一、指定数据库导出

mysqldump -u[username] -p[password] -h[hostname] --databases db1 db2 > d:/db_bak.sql

# 示例 Windows
mysqldump -uroot -p123456 -B mydb > d:/mydb_bak.sql

# 示例 Linux
mysqldump -uroot -p123456 -B mydb > /root/mydb_bak.sql

方法二、指定数据库导出 - gzip压缩并导出(推荐)

mysqldump -u[username] -p[password] -h[hostname] -B db1 db2 | gzip > d:/db_bak.sql.gz

# 示例 Windows(需借助cmder或者Git Bash执行)
mysqldump -uroot -p123456 -B mydb | gzip > d:/mydb_bak.sql.gz

# 示例 Linux
mysqldump -uroot -p123456 -B mydb | gzip > /root/mydb_bak.sql.gz

Windows下使用cmder,请下载cmder使用;也可下载安装Git Bash使用。

参数说明:

  • username: 用户名,如root
  • password: 用户密码,如果密码有特殊符号,可加单引号,如-p'password'
  • hostname: 主机名(如果是本机导出,可以省略-h)
  • --databases:与-B相同
  • db1 db2:需要导出的数据库,有几个,就写几个,中间用空格隔开
  • gzip:导出的文件进行压缩

二、导入

说明:导入的数据库可以预先不用创建;默认字符集和排序规则一致

# Linux 登陆mysql命令行,执行以下命令(备份脚本已上传至/root目录下)
mysql> source /root/db_bak.sql
# Windows 登陆mysql命令行,执行以下命令(备份脚本已上传至d盘根目录下,可将结尾为sql.gz的备份文件解压缩后使用以下命令)
mysql> source d:/db_bak.sql

# 不需要登录直接执行
mysql -u[username] -p[password] -h[hostname] < d:\db_bak.sql
# 不需要登录直接执行 - 压缩版(在linux上执行)
gunzip < /root/db_bak.sql.gz | mysql -u[username] -p[password] -h[hostname]

文章参考

推荐阅读更多精彩内容