MySQL数据库备份与还原

warning: 这篇文章距离上次修改已过476天,其中的内容可能已经有所变动。

1、备份数据库

使用mysqldump命令来备份数据库,默认情况下,mysqldump会把数据信息转换成SQL语句作为标准输入,并且可以使用Linux的输出重定向符>存储到文件中:

mysqldump [OPTIONS] database [tables] > backup_file_name
mysqldump [OPTIONS] --databases [OPTIONS] DB1 [DB2 DB3...]  > backup_file_name
mysqldump [OPTIONS] --all-databases [OPTIONS]  > backup_file_name

下面演示备份示例:
示例1:

mysqldump -uroot -p --all-databases > db_backup.sql
#备份全部数据库schema,存储到db_backup.sql文件

示例2:

mysqldump -uroot -p --databases db1 db2 > db_backup.sql
#备份db1和db2数据库schema,存储到db_backup.sql文件

示例3:

mysqldump -uroot -p db1 > db_backup.sql
#这种备份方式得到的*.sql文件没有`create database xxx;user xxx;`,并且只能指定一个数据库scheme

示例4:
备份数据库中的某个表

mysqldump -uroot -p dbname tbname1, tbname2 > backdb.sql
  • 第一种方式--all-databases会把当前用户下所有的数据库schema进行备份;
  • 第二种方式--databases可以制定当前用户的某一或多个数据库schema;
  • 第三种方式单单指定了数据库schema,它得到的文件就没有create databaseuse部分,并且这种方式只能指定一个数据库schema,这样可以把数据导入到不同数据库schema中。

2、恢复数据库

  • 备份文件有create database和use语句的恢复(上面示例1,示例2)
    对于使用mysqldump导出的SQL语句文件,可以使用mysql客户端进行恢复,如果备份时使用了all-databases或--databases选项,它包含了create database和use语句,所以没必要去指定默认的导入数据库schema了,直接使用输入重定向<传递给mysql客户端即可恢复:
mysql -uroot -p < db_backup.sql    #使用root用户恢复备份的所有数据库schema

或者在mysql下可以使用source命令恢复:

mysql -uroot -p #回车进入mysql终端,这里使用root用户
mysql>source db_backup.sql; /*恢复备份的所有数据库schema*/
  • 备份文件无create database和use语句的恢复
    如果是上面第三种方式的备份产出的SQL语句,即没有create database和use语句的,如果有需要的话,可以使用mysqladmin先建立数据库schedule,然后再恢复数据库:
mysqladmin -uroot -p create db_name
mysql -uroot -p db_name < db_backup.sql

或者在mysql下先创建数据库,然后使用source命令恢复:

mysql -uroot -p #使用root用户登录MySQL终端控制台
mysql>create database if not exists db_name; /*如果数据库不存在就创建数据库scheme*/
mysql>use db_name;    /*使用数据库scheme*/
mysql>source db_backup.sql;  /*恢复备份的数据库*/

PS:使用gzip压缩备份与还原MySQL数据库方法:

备份命令:

mysqldump -R -uroot -pmysql wordpress |gzip > /root/db_back/manual/$curdate/wordpress-$curdate.sql.gz

还原命令:

gunzip < /root/db_back/manual/$curdate/wordpress-$curdate.sql.gz |mysql -uroot -pmysql wordpress

mysql backupmysql backup

最后修改于:2021年03月15日 08:15

添加新评论