MySQL完整备份与恢复

实例:

1、修改配置文件开启二进制日志:

[root@mysql ~]# vim /etc/my.cnf

server-id = 2
#id是做标识
log-bin=/var/log/mysql/bin-log 
#设置二进制日志存放的位置

2、创建存放二进制日志文件的目录并赋权限:

[root@mysql ~]# mkdir -p /var/log/mysql 
[root@mysql ~]# chown -R mysql.mysql /var/log/mysql

3、创建全量备份文件存放目录并赋权限:

[root@mysql ~]# mkdir -p /backup/mysql
[root@mysql ~]# chown -R mysql.mysql /backup/mysql/

4、重启数据库:

[root@mysql ~]# systemctl restart mysqld

5、进入mysql创建一个数据库 test1:

[root@mysql ~]# mysql -uroot -p'Liang.123com'

mysql> create database test1;
#创建数据库
mysql> show databases;
#查看数据库

6、进行全量备份:

[root@mysql ~]# mysqldump -uroot -hlocalhost -p'Liang.123com' -P3306 --all-databases --triggers --routines --events --single-transaction --master-data=1 --flush-logs --set-gtid-purged=OFF > /backup/mysql/$(date +%F%H)-mysql-all.sql

 7、删除数据库文件:

[root@mysql ~]# systemctl stop mysqld.service 
#停止数据库
[root@mysql ~]# rm -rf /var/lib/mysql/*
#删除数据库文件

8、向全量备份文件里面追加不记录二进制日志的命令:

[root@mysql ~]# sed -i '23a set sql_log_bin=0;' /backup/mysql/2023-10-3120-mysql-all.sql

9、重启初始化数据库、启动数据库、并修改密码:

[root@mysql ~]# systemctl restart mysqld
#重启数据库
[root@mysql ~]# grep 'temporary password' /var/log/mysqld.log
#查数据库初始化密码
[root@mysql ~]# myslq -uroot -p'VAeBojdk/9sG'
#登陆数据库

mysql> alter user 'root'@'localhost' identified by 'Liang.123com';
#修改数据库密码
mysql> show databases;
#查看数据库

这是一个新的数据库,里面只有默认的库,并没有 test1 数据库。 

10、导入全备的数据:

mysql> set sql_log_bin=0;
mysql> source /backup/mysql/2019-11-2810-mysql-all.sql
#导入全备的数据
mysql>  set sql_log_bin=1;

  

 11、刷新一下(导入之后当前的密码会不变,当进入数据库 flush privileges 之后,密码又恢复到备份时的密码):

mysql> flush privileges;

  • 10
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值