天天看点

MySQL数据库备份与还原介绍

MySQL数据库备份与还原

  • 介绍
    • 逻辑备份
    • 逻辑还原
      • 其他情况说明
    • 物理备份
    • 物理还原

介绍

MySQL是我们开发最为常用的数据库之一,下面简单介绍一下MySQL数据库的备份与还原。

逻辑备份

注意:这种方式适用于比较少量数据的时候,如果大量数据,请物理备份,备份文件尽量含有日期[方便数据的还原与管理],对于客户的数据库是禁止删除的,因此还原的时候,可以还原到新的数据库。

Windows平台下CMD执行:参数说明

-h 10.0.42.180

[host数据库服务器IP],-P 3306[PORT数据库端口,mysql默认3306] gbk[数据库字符集,当前test默认字符集],test[数据库名称],D:\test_backup20181123.dump[备份路径以及文件名] ,如果是本机-h 10.0.42.180 -P 3306 部分可以省略

1.cmd执行

D:\> mysqldump -uroot -p -h 10.0.42.180 -P 3306 -c --default-character-set=gbk test > D:\\test_backup20181123.dump
           

输入密码后回车

MySQL数据库备份与还原介绍

在对应路径下就能看到相应文件了【如果2002请看后面的其他情况说明】

MySQL数据库备份与还原介绍

逻辑还原

1.创建数据库,指定字符集

mysql>  CREATE DATABASE test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
           
MySQL数据库备份与还原介绍

2.导入表及数据

cmd下执行下面语句,输入密码后回车

D:\> mysql -uroot -p -h 10.0.42.180 -P 3306 -c --default-character-set=gbk test < D:\\test_backup20181123.dump
           
MySQL数据库备份与还原介绍

其他情况说明

数据库还原的时候,如果提示外键约束,修改dump文件,开头添加,不启用外键

SET FOREIGN_KEY_CHECKS=0;
           

最后添加

SET FOREIGN_KEY_CHECKS=1;
           

Linux平台下与windows下面基本一致

如果Linux下提示下面错误

mysqldump: Got error: 2002: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
           

套接字错误,选择正确的套接字

[[email protected] gugu]# netstat -ln | grep mysql
unix  2      [ ACC ]     STREAM     LISTENING     17512781 /var/lib/mysql/mysql.sock
           

导出命令中添加socket参数

[[email protected] gugu]# mysqldump -uroot -p --socket=/var/lib/mysql/mysql.sock -c --default-character-set=gbk test > ./test_backup20181123.dump
           

物理备份

顾名思义,找到物理存储文件进行备份

1.物理备份[InnoDB存储引擎(mysql5.5.5以上版本默认存储引擎)],test[数据库名称],

MySQL数据目录下复制test文件夹以及ibdata1文件

如果找不到文件位置

mysql> show global variables like "%datadir%";
           
MySQL数据库备份与还原介绍

就可以找到物理文件位置,以及下面的数据文件

MySQL数据库备份与还原介绍

物理还原

  1. 停止服务器

    2.将test文件夹以及ibdata1文件夹替换原来数据库数据文件

    3.重新启动数据库

    注意:这种情况会所有数据库都会还原成备份的版本

继续阅读