使用 mysqldump 备份和数恢复数据库

一、备份数据库

mysql 自带了数据库备份工具 mysqldump 可以很方便的对数据库进行备份:

以上命令就完成了一次数据备份,备份后的数据保存在文件 db.sql,参数--all-databases 是指备份所有数据库。

如果只想备份特定的数据库,通过参数--database, -B 指定即可,也可以直接加在命令后面:

这条命令就只备份 test 数据库,生成的 test.sql 文件即为数据库。

二、恢复数据库

恢复数据库使用 mysql 命令就可以完成,要注意的地方是恢复到数据库之前要求数据库必须存在:

以上命令就表示把备份的数据库文件导入到数据库 test 中,如果 test 数据库不存在,会报错:

三、 mysqldump 用户权限问题

使用 mysqldump 进行数据备份时依赖账户密码和数据库的访问权限,如果使用正常的业务账号容易导致账号密码被泄露。根据权限最小化原则,一般建议为 mysqldump 建立单独的用户身份。

一个单独的 mysqldump 用户应该包含以下权限:

  1. 只有只读权限,不能修改数据库内容
  2. 只能本地用户登陆

创建一个符合以上条件的 dumper 用户:

发表评论