mysql的备份与还原操作
Mysql的备份与还原的操作步骤
mysql备份与还原
@1:物理备份:
1.备份
#关闭mysql,备份data目录
service mysqld stop
yum -y install xz
#压缩备份data目录
tar Jcvf /opt/mysql_all_$(date +%F).tar.xz data目录
2. 恢复
#解压之前备份的数据库data目录,不用删除原目录,会自动替换
tar Jxvf /opt/mysql_all_2021-11-28.tar.xz -C ./
# 解压恢复之后重启mysql数据库服务
service mysqld start
@2:命令备份
#>1备份出数据库脚本文件
mysqldump -u root -p[密码] --databases 库名1 [库名2] … > /备份路径/备份文件名.sql
#>2全库备份
mysqldump -u root -p[密码] --all-databases > /备份路径/备份文件名.sql
#3备份指定的数据库表
mysqldump -u root -p[密码] 库名 [表名1] [表名2] … > /备份路径/备份文件名.sql
恢复:
mysql -u root -p < /备份路径/备份文件名.sql
mysql -u root -p 数据库名 < /备份路径/备份文件名.sql
@3:binlog(二进制)恢复方式
## 二进制binlog恢复方式主要需要先开启binlog
@1:开启binlog
vi /etc/my.cnf
[mysqld]
log-bin=mysql-bin
#指定二进制日志(binlog)的记录格式为 MIXED
binlog_format = MIXED
@2:重启mysql服务
service mysqld restart
@3:查看是否生成binlog日志 可进入数据库的data目录下进行查看
目录下回生成 mysql-bin.00001 mysql-bin.00002等的文件
@4执行命名刷新最新的二进制备份
mysqladmin -u root -p flush-logs
@5:查看二进制日志文件的内容
mysqlbinlog --no-defaults --base64-output=decode-rows -v /数据文件目录/mysql-bin.000001
二进制恢复
@1:一般恢复
mysqlbinlog --no-defaults /数据文件目录/mysql-bin.000001 | mysql -u root -p
重启mysql服务
service mysqld restart
这样会恢复在mysql-bin.00001文件中删除的数据
@2:基于位置点恢复数据
# 刷新生成新的二进制日志文件
mysqladmin -u root -p flush-logs
# 进入到data目录
cd /data目录/
#查看二进制日志文件
mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.0000002
# at 88948 #断点
#211551 7:58:18 #时间
insert into message values(1,'测试','new','hello') #插入的数据
恢复到插入数据之前的数据情况,先刷新下二进制日志
mysqladmin -u root -p flush-logs
进行恢复操作:
mysqlbinlog --no-defaults --stop-position='88948' mysql-bin.000002 | mysql -u root -p
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?