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
输入密码后回车
在对应路径下就能看到相应文件了【如果2002请看后面的其他情况说明】
逻辑还原
1.创建数据库,指定字符集
mysql> CREATE DATABASE test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;
2.导入表及数据
cmd下执行下面语句,输入密码后回车
D:\> mysql -uroot -p -h 10.0.42.180 -P 3306 -c --default-character-set=gbk test < D:\\test_backup20181123.dump
其他情况说明
数据库还原的时候,如果提示外键约束,修改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)
套接字错误,选择正确的套接字
[root@localhost gugu]# netstat -ln | grep mysql
unix 2 [ ACC ] STREAM LISTENING 17512781 /var/lib/mysql/mysql.sock
导出命令中添加socket参数
[root@localhost 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%";
就可以找到物理文件位置,以及下面的数据文件
物理还原
- 停止服务器
2.将test文件夹以及ibdata1文件夹替换原来数据库数据文件
3.重新启动数据库
注意:这种情况会所有数据库都会还原成备份的版本
还没有评论,来说两句吧...