**运维期间数据备份是需要掌握的一个方式mysqldump是MySQL自带的一个备份功据**
实现数据库完全备份
-
安装MySQL:
yum -y install mysqld
(注意要配置各种源) -
进入MySQL:
mysql
-
查看目前我的数据库(目前我主要的是hellodb数据库)
-
在进行二进制之前我们要先创建好二进制日志要放的目录并授权(mkdir /data/mysql/)
-
chown mysql.mysql /data/mysql/
(注意一定要授权给放日志的目录mysql)
-
现在设置二进制日志(
vim /etc/my.cnf.d/mysql-server.cnf
修改配置文件)将log-bin=/data/mysql/mysql-bin
添加进去注意要添加到[mysqld]
下面。
-
重新启动数据库服务
-
完全备份,并记录备份的二进制位置
(mysqldump -uroot -pmagedu -A -F --default-character-set=utf8 --single-transaction --master-data=2 | gzip > /backup/all_
date +%F.sql.gz
)注意“-p”后面跟的是密码如果你没有密码可以将“-pmagedu”删除,事先一定要在根目录下创建(backup文件目录)
-
查看一下是否成功
ll /backup
-
接下来我们修改数据库表,先进入数据库,然后进行修改,然后查看一下成功否(注意你的环境和我的环境不同,要注意灵活运用)
-
然后让来删库跑路(
rm -rf /var/lib/mysql/*
)此命令是破环数据库建议在模拟环境使用,
-
现在我们开始还原完全备份
cd /backup
(进入backup目录下)
gzip -d all_2021-05-22.sql.gz
(进行解压)
-
CcentOS 8 需要事先生成数据库相关文件,Centos 7 不需要执行此步
mysqld --initialize-insecure --user=mysql --datadir=/data/mysqld
(先生成数据库文件到mysqld下再移到/var/lib/mysql下
)
mv /data/mysqld/* /var/lib/mysql (将mysqld下的所有文件移动到mysql下)
14. 查看是否成功(注意权限)
15. systemctl restart mysqld
(重新启动数据库)
16. 过滤出二进制文件完全备份的起始位置,进行二进制日志筛选
17. 进入mysql目录下,查看目录下的文件
18. 利用从定向将二进制日志重定向到including.qsl
下,查看一下。
20. 现在开始进行还原备份
(1)进入数据库(mysql
)
(2)关闭二进制日志(临时关闭,如果要永久关闭需要修改配置文件 vim /etc/my.cnf.d/mysql-server.cnf
)
(mysql> set sql_log_bin=0;
)
(mysql> select @@sql_log_bin;
)
(3)先回复完全备份,再回复二进制文件
mysql> source /backup/all_2021-05-22.sql
mysql> source /backup/inc.qsl
(4)查看效果如何,(数据库已经全部恢复)show databases;
(5)查看一下表里的内容(填的内容都在)mysql> select * from students;
这里就结束了,简单实现了一下数据库崩溃后利用备份和二进制俩还原数据库内容。