当我们MySQL数据库保存重要数据的时候,备份工作极为重要。本文介绍如何使用mysqldump备份和恢复数据,使用该方法,可以将数据库中的数据备份成一个文本文件,也可将备份好的数据库迁移到另一台的服务器。
(1) 从命令行备份MySQL数据库 在Linux操作系统中,我们可以使用mysqldump命令进行备份。该命令将连接MySQL服务器并创建SQL转储文件,该文件包含了重新创建数据库所必需的所有SQL语句。该命令的基本语法如下: $ mysqldump --opt -u [uname] -p[pass] [dbname] > [backupfile.sql] [uname] 数据库用户名 [pass] 数据库密码 [dbname] 数据库名 [backupfile.sql] 数据库备份文件名 [--opt] mysqldump选项 例如:备份数据库Tuixin到20131112.sql文件,你可以简单地使用以下命令: $ mysqldump -u root -p Tuixin > 20131112.sql 如果有必要一次导出所有的数据库,可使用--all-databases选项,命令如下: $ mysqldump -u root -p --all-databases > 20131112.sql 如果mysql数据库较大,你可能希望能压缩mysqldump导出的SQL文件,此时仅需使用如下的备份命令,并通过管道连接到gzip,此时便可导出gzip文件。 $ mysqldump -u root -p Tuixin | gzip -9 > 20131112.sql.gz 解压缩方法如下: $ gunzip 20131112.sql.gz
(2) 从命令行恢复MySQL数据库 通过上面的方法,我们已经将数据库Tuixin备份至20131112.sql文件,接下来,我们恢复Tuixin数据库: * 在目标机器上创建相应的数据库名 * 使用mysql命令载入sql文件 $ mysql -u [uname] -p[pass] [db_to_restore] < [backupfile.sql] 例如,我们现在恢复20131112.sql文件到Tuixin数据库: $ mysql -u root -p Tuixin < 20131112.sql 如果是恢复压缩的备份文件,可遵循以下格式: $ gunzip < [backupfile.sql.gz] | mysql -u [uname] -p[pass] [dbname] 如果是恢复已经存在的数据库,此时可使用mysqlimport命令,该命令的语法格式如下: $ mysqlimport -u [uname] -p[pass] [dbname] [backupfile.sql]
注:MySQL还有一种最简单的备份方法,就是直接将MySQL中的数据库文件直接复制出来,这种方法最简单,速度也最快,但使用这种方法时,最好先停止服务器,以保证数据库在复制过程中不会发生变化。该方法简单快速,但不是最好的备份方法,实际情况可能不允许停止MySQL服务器,而且这种方法对InnoDB引擎不适用。
|