MySQL 数据备份

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 数据备份相关的知识,希望对你有一定的参考价值。

mysql是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。

我们试着想一想, 在生产环境中什么最重要?如果我们服务器的硬件坏了可以维修或者换新, 软件问题可以修复或重新安装, 但是如果数据没了呢?这可能是最恐怖的事情了吧, 我感觉在生产环境中应该没有什么比数据跟更为重要. 那么我们该如何保证数据不丢失、或者丢失后可以快速恢复呢?只要看完这篇, 大家应该就能对MySQL中实现数据备份和恢复能有一定的了解。

创建新数据库并且进行完全备份

ls /usr/local/mysql/data/school/  //会生成三个数据文件分别为
db.opt    //属性文件
info.frm  //表的结构文件
info.ibd  //表的数据文件
tar Jcvf /opt/mysql-$(date +%F).tar.xz /usr/local/mysql/data/   //全部进行备份
mysql-2018-07-04.tar.xz  //就会在备份的路径中生成一个xz格式的压缩包
当恢复的时候 则删除原有data 所有文件
tar Jxvf /opt/mysql-2018-07-04.tar.xz -C  
当备份回去注意文件的属主和属组

备份

mysqldump -u root -p school > /opt/school.sql /备数据库
mysqldump -u root -p --databases school mysql > /opt/school-mysql.sql  //同时备份多个数据库
mysqldump -u root -p --opt --all-databases > /opt/all-mysql.sql  //备份所有数据库
mysqldump -u root -p school info > /opt/school-info.sql  //备份school 里面的info表
mysqldump -u root -p -d school info > /opt/desc-info.sql  //备份表的结构 不会数据插入

技术分享图片
技术分享图片
技术分享图片
技术分享图片
Linux字符界面中恢复MySQL中的数据库表列

注:在Linux字符界面中恢复的前提是得有一个要恢复的数据库同名的数据才恢复数据库
mysql -u root -p school < /opt/school-info.sql 
//在恢复表的时候一应是要先有数据库才可以恢复

在MySQL模式恢复 "source"命令

mysql> drop table info;  ///删除表
mysql> source /opt/school-info.sql  //导入回来就OK了
mysql> show tables;  //查看表

技术分享图片
技术分享图片
增量备份 要开启二进制日志文件

log-bin=mysql-bin   //在MySQL主配置中服务端里面添加开启二进制日志文件
mysqladmin -u root -p flush-logs2  //刷新并且生成二进制日志
insert into info (name,score) values (‘lisi‘,88);   //添加了李四
mysqlbinlog --no-defaults mysql-bin.000002 | mysql -u root -p  //使用二进制日志进行恢复
查看二进制文件
mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000002
--base64-output=decode-rows -v //使用64位编码进行解码 按行进行读取 -v 显示出来

技术分享图片
技术分享图片
技术分享图片
技术分享图片

以上是关于MySQL 数据备份的主要内容,如果未能解决你的问题,请参考以下文章

从mysql的片段中加载ListView

硬核!管理mysql数据库的工具

连接MySQL出现错误:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)(代码片段

使用 json rereiver php mysql 在片段中填充列表视图

关于mysql驱动版本报错解决,Cause: com.mysql.jdbc.exceptions.jdbc4Unknown system variable ‘query_cache_size(代码片段

修改MySQL密码报错“ERROR 1819 (HY000): Your password does not satisfy the current policy requirements“(代码片段