当我们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引擎不适用。
备份表多秒空格隔开
mysqldump -uroot 密码 --tables stormcenter storm_auth_rule storm_auth_group > db.table.sql