mysql数据库的压缩备份与还原
使用mysql数据库,经常会遇到数据库的备份与还原这样的需求,并且在这个过程遇到的问题是相当的丰富,比如磁盘空间不足、备份或还原过程中断电等。本文就磁盘空间不足,或如何节省磁盘空间给出一个解决方案,压缩备份文件。
通常情况下,我们会利用mysqldump命令将某库(如db_name)中的数据导出到一个文件中,然后再利用gzip、zip等压缩命令对这个文件进行压缩操作,但我们要求在利用mysqldump命令导出数据的过程中,就对其进行压缩。是的,如何在备份过程中压缩备份文件?这是本文要解决的问题之一。
结合mysqldump、管道符(|)、gzip或zip命令,命令行可以写成:
1./usr/local/mysql/bin/mysqldump --quick --force db_name|gzip > /home/mysql/db_name.sql.gz
或
2./usr/local/mysql/bin/mysqldump --quick --force db_name|zip > /home/mysql/db_name.sql.zip
管道符(|)的含义:把前一个命令的执行结果作为参数传给后一个命令
上面命令行的含义:把db_name库要备份的内容作为参数传给gzip或zip,gzip或zip把db_name库的内容压缩后,利用输出重定向命令(>)写入备份文件
当然压缩命令不止gzip、zip两种,上述1、2两个命令行中的gzip或zip也可以换成其他压缩命令,效果大同小异。有备份,就有还原,对,本文要解决的另一个问题是:如何还原压缩的sql文件到mysql数据库?
这还需结合mysql、管道符(|)、gunzip或unzip命令,命令行可以写成:
1.gunzip < /home/mysql/db_name.sql.gz |mysql --force db_name
或
2.gunzip -c /home/mysql/db_name.sql.gz |mysql --force db_name
或
3.gzip -d < /home/mysql/db_name.sql.gz |mysql --force db_name
或
4.unzip -c /home/mysql/db_name.sql.zip |mysql --force db_name
或
5.gunzip -c /home/mysql/db_name.sql.zip |mysql --force db_name
数据库导入导出:
数据库导入:
c:\>MySQL -h localhost -u root -p mydb2 < e:\MySQL\mydb2.sql
数据库导出:
c:\>mysqldump -h localhost -u root -p mydb mytable>e:\mysql\mytable.sql