Linux系统下MySQL数据库的备份和恢复

发布于 2017-10-26  3.03k 次阅读


当我们MySQL数据库保存重要数据的时候,备份工作极为重要。本文介绍如何使用mysqldump备份和恢复数据,使用该方法,可以将数据库中的数据备份成一个文本文件,也可将备份好的数据库迁移到另一台的服务器。

从命令行备份MySQL数据库

在Linux操作系统中,我们可以使用mysqldump命令进行备份。该命令将连接MySQL服务器并创建SQL转储文件,该文件包含了重新创建数据库所必需的所有SQL语句。该命令的基本语法如下:

$ mysqldump --opt -u [uname] -p[pass] [dbname] > [backupfile.sql]
  • [uname] 数据库用户名
  • [pass] 数据库密码
  • [dbname] 数据库名
  • [backupfile.sql] 数据库备份文件名
  • [–opt] mysqldump选项

例如:备份数据库XiaoJun到XiaoJun.sql文件,你可以简单地使用以下命令:

$ mysqldump -u root -p XiaoJun > XiaoJun.sql

如果有必要一次导出所有的数据库,可使用–all-databases选项,命令如下:

$ mysqldump -u root -p --all-databases > XiaoJun.sql

如果mysql数据库较大,你可能希望能压缩mysqldump导出的SQL文件,此时仅需使用如下的备份命令,并通过管道连接到gzip,此时便可导出gzip文件。

$ mysqldump -u root -p XiaoJun | gzip -9 > XiaoJun.sql.gz

解压缩方法如下:
$ gunzip XiaoJun.sql.gz

从命令行恢复MySQL数据库

通过上面的方法,我们已经将数据库XiaoJun备份至XiaoJun.sql文件,接下来,我们恢复XiaoJun数据库:
* 在目标机器上创建相应的数据库名
* 使用mysql命令载入sql文件

$ mysql -u [uname] -p[pass] [db_to_restore] < [backupfile.sql]

例如,我们现在恢复XiaoJun.sql文件到XiaoJun数据库:

$ mysql -u root -p XiaoJun < XiaoJun.sql

如果是恢复压缩的备份文件,可遵循以下格式:

$ gunzip < [backupfile.sql.gz] | mysql -u [uname] -p[pass] [dbname]

如果是恢复已经存在的数据库,此时可使用mysqlimport命令,该命令的语法格式如下:

$ mysqlimport -u [uname] -p[pass] [dbname] [backupfile.sql]

注:MySQL还有一种最简单的备份方法,就是直接将MySQL中的数据库文件直接复制出来,这种方法最简单,速度也最快,但使用这种方法时,最好先停止服务器,以保证数据库在复制过程中不会发生变化。该方法简单快速,但不是最好的备份方法,实际情况可能不允许停止MySQL服务器,而且这种方法对InnoDB引擎不适用。


一个简简单单的90后小伙