MySQL的主从备份
环境准备
2台或以上ctenos服务器
关闭防火墙
MySQL的安装及主从备份
链接:https://pan.baidu.com/s/1VK4p_YRSM34KpzrF1oWE-g
提取码:ynz8
下载所需的rpm包安装MySQL
安装过程:
1、安装
[root@localhost ~]# yum -y install mysql-co*
2、安装不成功,删除mariadb-libs-5.5.65-1.el7.x86_64
[root@localhost ~]# yum -y remove mariadb-libs-5.5.65-1.el7.x86_64
[root@localhost ~]# yum -y install mysql-co*
3、启动数据库
[root@localhost ~]# systemctl start mysqld
4、修改初始密码
[root@localhost ~]# grep 'password' /var/log/mysqld.log
2020-10-13T15:33:20.400949Z 1 [Note] A temporary password is generated for root@localhost: I30DtE5Dol-X
[root@localhost ~]# mysqladmin -p'I30DtE5Dol-X' password '现密码'
5、登录数据库看是否能登录
[root@localhost ~]# mysql -uroot -p'现密码'
主服务器和从服务器都需执行上面的操作
6、退出数据库启动二进制日志功能(master)
[root@localhost ~]# vim /etc/my.cnf
添加以下内容: log_bin
Server-id=1
7、重启数据库
[root@localhost ~]# systemctl restart mysqld
8、给数据库模拟有数据的环境
create database master1db;
use master1db;
create table master1tab(name char(50));
insert into master1tab values(1111);
insert into master1tab values(2222);
9、创建mysql只读登录用户(数据库里操作)
grant replication slave, replication
client on *.* to 'rep'@'192.168.80.%'
identified by 'QianFeng@123';
根据自己的的情况创建账户’192.168.80.%'指可以在192.168.80网段上所以的设备 登录。
10、备份数据库
[`root@localhost ~]# mysqldump -p'QianFeng@123' --all-databases --single-transaction --master-data=2 --flush-logs > `date +%F`-mysql-all.sql`
11、将备份的文件发送给从服务器保持数据的一致性
scp -r 2020-1-1-mysql-all.sql master2:/tmp
//先了解scp的用法
从服务器配置
12、启动服务器的序号
[root@localhost ~]#vim /etc/my.cnf
server-id=2
服务器ID是必须设置的。
13、重启数据库
[root@localhost ~]# systemctl restart mysqld
14、测试服务器是否修改正确。能否正常登陆。
[root@localhost ~]# mysql -uroot -p'现密码'
14、手动同步数据
[root@localhost ~]# mysql -p'密码' < /tmp/2020-10-13-mysql-all.sql
15、设置主服务器(数据里操作)
change master to
master_host='192.168.80.146', //主服务器的ip
master_user='rep', //登录主服务器的用户名
master_password='QianFeng@123', //密码
master_log_file='localhost-bin.000002', //二进制文件
master_log_pos=154; //日志断点
注意,二进制日志的位置,应该参照主服务器备份时生成的新位置。
16、启动从设备
mysql> start slave;
17、查看启动状态(IO-YES/SQL-YES)
show slave status\G;
mysql> show slave status\G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: master1
Master_User: rep
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: localhost-bin.000002
Read_Master_Log_Pos: 154
Relay_Log_File: localhost-relay-bin.000002
Relay_Log_Pos: 375
Relay_Master_Log_File: localhost-bin.000002
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
两个yes就是成功了,一个no就是那里出了什么问题需要排错。
18、返回主服务器更新数据,在从服务器观察是否同步。
主从备份至此基本完成了