mysql 数据备份还原
悲剧的一天,不小心将数据库删了。。。
命令行备份数据库
1、mysqldump命令进行备份。该命令将连接MySQL服务器并创建SQL转储文件,该文件包含了重新创建数据库所必需的所有SQL语句。该命令的基本语法如下:
$ mysqldump --opt -u [uname] -p[pass] [dbname] > [backupfile.sql]
[uname] 数据库用户名
[pass] 数据库密码
[dbname] 数据库名
[backupfile.sql] 数据库备份文件名
[--opt] mysqldump选项
例如:备份数据库Trunk2015到20151112.sql文件,你可以简单地使用以下命令:
$ mysqldump -u root -p Trunk2015 > 20151112.sql
如果有必要一次导出所有的数据库,可使用--all-databases选项,命令如下:
$ mysqldump -u root -p --all-databases > 20151112.sql
如果mysql数据库较大,你可能希望能压缩mysqldump导出的SQL文件,此时仅需使用如下的备份命令,并通过管道连接到gzip,此时便可导出gzip文件。
$ mysqldump -u root -p Trunk2015 | gzip -9 > 20151112.sql.gz
解压缩方法如下:
$ gunzip 20151112.sql.gz
从命令行恢复MySQL数据库
通过上面的方法,我们已经将数据库Trunk015备份至20151112.sql文件,接下来,我们恢复Trunk2015数据库:
* 在目标机器上创建相应的数据库名
* 使用mysql命令载入sql文件
$ mysql -u [uname] -p[pass] [db_to_restore] < [backupfile.sql]
例如,我们现在恢复20151112.sql文件到Trunk2015数据库:
$ mysql -u root -p Trunk2015 < 20151112.sql
如果是恢复压缩的备份文件,可遵循以下格式:
$ gunzip < [backupfile.sql.gz] | mysql -u [uname] -p[pass] [dbname]
这里出现了错误,
可以使用$ gunzip < [backupfile.sql.gz] | mysql -u [uname] -p [dbname]换行输入密码
如果是恢复已经存在的数据库,此时可使用mysqlimport命令,该命令的语法格式如下:
$ mysqlimport -u [uname] -p[pass] [dbname] [backupfile.sql]