欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

centos双机热备 数据库主从相互备份(下)

程序员文章站 2022-03-06 16:05:09
...

 

centos双机热备 数据库主从相互备份(上):https://blog.csdn.net/Berzingou/article/details/82017228

相关资料网盘链接:https://pan.baidu.com/s/1Zgx3hRB400JFLIGHPVdtJA 密码:gg8x

 

mysql互为主从同步配置

一、远程连接数据库并导入sql文件

使用navicat分别远程连接主从mysql服务器
各自创建一个名称为ssm的数据库用于测试(因为这个数据库后面还会继续用到  请务必保证名称是ssm)
导入ssm.sql文件(在我分享的网盘里面有)
导入完成后是这样的:(主从数据库初始数据请务必保持一致)

centos双机热备 数据库主从相互备份(下)

centos双机热备 数据库主从相互备份(下)

 

二、关闭SELINUX(两台服务器都要执行此操作)

vim /etc/selinux/config  #配置config文件
按i进入编辑模式
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
esc  :wq保存并退出编辑
setenforce 0 #立即生效

 

三、配置mysql主服务器(192.168.25.137)
mysql -u root -p  #登录mysql主服务器控制台
输入密码
grant all privileges  on *.* to 'userbak' @'192.168.25.137' identified by '123456';  #授权用户userbak能通过主服务器ip访问主服务器中的mysql
grant all privileges  on *.* to 'userbak' @'%' identified by '123456';  #开启远程连接权限
flush privileges;  #刷新mysql系统权限相关表

配置测试
我们现在进入备用mysql服务器
mysql -u userbak -h 192.168.25.137 -p  #在备用服务器中去连接主服务器(192.168.25.137是主服务器ip)
输入密码
成功登录!

centos双机热备 数据库主从相互备份(下)

exit  #退出mysql备用服务器控制台(测试登录成功后千万千万千万记得立即退出来!!因为这毕竟是主服务器的mysql!!)

切回主服务器
exit  #退出mysql控制台

cd /usr/share/mysql  #进入mysql目录
ls  #查看内容

centos双机热备 数据库主从相互备份(下)
cp my-default.cnf /etc/my.cnf  #将mysql目录下面的my-default.cnf拷贝到etc下面去  并命名为my.cnf
vim /etc/my.cnf  #编辑my.cnf文件  在[mysqld]后面添加配置内容
按i进入编辑模式
配置内容如下:

centos双机热备 数据库主从相互备份(下)

server-id=1   # 设置服务器id,为1表示主服务器,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
log-bin=mysql-bin  # 启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。
binlog-do-db=ssm  # 需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
replicate-do-db =ssm
binlog-ignore-db=mysql   # 不同步mysql系统数据库

esc  :wq退出并保存文件

service mysql restart  #重启mysql
mysql -u root -p  #进入mysql控制台
输入密码

show variables like 'server_id';  #查看server_id(值应该就是我们在my.cnf中配置的1)

centos双机热备 数据库主从相互备份(下)

show master status;  #查看主服务器状态   出现以下信息

centos双机热备 数据库主从相互备份(下)
记住这里的file值:mysql-bin.000001和position的值:120  后面会用到

 

四、配置mysql备用服务器(192.168.25.139)
cd /usr/share/mysql  #进入mysql目录
ls  #查看内容
cp my-default.cnf /etc/my.cnf  #拷贝文件到etc目录中
vim /etc/my.cnf  #编辑配置文件  在[mysqld]后面添加
按i进入编辑模式
配置内容如下:

centos双机热备 数据库主从相互备份(下)

 

server-id=2   # 设置服务器id,修改其值为2,表示为从数据库
log-bin=mysql-bin  # 启动MySQ二进制日志系统,注意:如果原来的配置文件中已经有这一行,就不用再添加了。

binlog-do-db=ssm  # 需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行
replicate-do-db=ssm
binlog-ignore-db=mysql   # 不同步mysql系统数据库

esc :wq退出并保存配置

service mysql restart  #重启MySQL备用服务器服务
mysql  -u root -p  #进入MySQL控制台
输入密码
show variables like 'server_id';  #查看server-id的值,必须为上面设置的2,否则请返回修改配置文件

centos双机热备 数据库主从相互备份(下)

stop slave;   #停止slave同步进程

change master to master_host='192.168.25.137',master_user='userbak',master_password='123456',master_log_file='mysql-bin.000001' ,master_log_pos=120;  #执行同步语句

#这里的master_log_file和master_log_pos就是我们之前记录的值

#特别的!!192.168.25.137是主服务器ip
start slave;    #开启slave同步进程
show slave status\G;   #查看slave同步信息,出现以下内容

centos双机热备 数据库主从相互备份(下)

现在   mysql主服务修改数据后  备用服务器也会同步修改数据

 

五、主从同步配置

我们接下来要实现的是  备用mysql服务器修改数据后   mysql主服务器也会同步修改  也就是相互备份
进入备用mysql服务器  进入mysql控制台
grant all privileges  on *.* to 'userbak' @'192.168.25.139' identified by '123456';  

#授权用户userbak能通过备用服务器ip访问备用服务器中的mysql

#192.168.25.139是备用服务器ip
grant all privileges  on *.* to 'userbak' @'%' identified by '123456';  #开启远程连接权限
flush privileges;  #刷新mysql系统权限相关表

 

测试在mysql主服务器上是否能连接mysql备用服务器

切到mysql主服务器
退出mysql主服务器控制台
mysql -u userbak -h 192.168.25.139 -p  #192.168.25.139是备用服务器的ip
输入密码
成功登录!

centos双机热备 数据库主从相互备份(下)
exit  #退出主服务器下的备用服务器的mysql控制台  这里特别提醒一下  测试完成后注意请立即退出(因为这个是备用服务器的mysql)!!!!!

再次切到mysql备用服务器
在mysql控制台中输入
show master status;
可以看到以下内容:

centos双机热备 数据库主从相互备份(下)
记住这里的file值:mysql-bin.000001和position的值:643  后面会用到

切换到mysql主服务器
mysql -u root -p  #登录mysql控制台
stop slave;  #先在mysql控制台中停止slave同步


change master to master_host='192.168.25.139',master_user='userbak',master_password='123456',master_log_file='mysql-bin.000001' ,master_log_pos=643;    

#执行同步语句
#这里的master_log_file和master_log_pos就是我们之前记录的值

#再次强调  192.168.25.139是备用服务器的ip

start slave;  #重新开启slave同步
show slave status\G;  #查看slave同步信息,会出现以下内容

centos双机热备 数据库主从相互备份(下)

六、主从同步测试

使用navicat远程连接两个数据库
修改t_user表中的数据
修改主服务器中的数据  你会发现备用服务器数据会随之改变
反之  修改备用服务器中的数据   你会发现主服务器中的数据会随之改变=
到此   我们就实现了mysql主从服务器相互备份~~~

 

 

导入ssm war包进行综合测试

一、启动主服务器tomcat(192.168.25.137)

我分享的网盘里面有测试项目的源码  当作为主服务器的项目时  我们在index.jsp中加入master标识并将项目中jdbc.properties文件中的url,password改成你们自己的就行  最后再导出war包  上传到/usr/local/tomcat/webapps目录下
cd /usr/local/tomcat/bin   #进入bin目录
ls  #查看内容

centos双机热备 数据库主从相互备份(下)
./startup.sh  #启动tomcat

二、启动备用服务器tomcat(192.168.25.139)

我分享的网盘里面有测试项目的源码  当作为备用服务器的项目时  我们在index.jsp中加入backup标识并将项目中jdbc.properties文件中的url,password改成你们自己的就行  最后再导出war包  上传到/usr/local/tomcat/webapps目录下
cd /usr/local/tomcat/bin  #进入bin目录
ls  #查看内容
./startup.sh  #启动tomcat

三、测试总体效果

访问主服务器

centos双机热备 数据库主从相互备份(下)

访问备用服务器

centos双机热备 数据库主从相互备份(下)

修改数据看数据库是否能够同步(发现主从成功同步!)

centos双机热备 数据库主从相互备份(下)

centos双机热备 数据库主从相互备份(下)

使用虚拟ip(192.168.25.100)访问项目

centos双机热备 数据库主从相互备份(下)

关闭主服务器   我们发现虚拟ip成功漂移到了备用服务器上!!

centos双机热备 数据库主从相互备份(下)

 

当重启主服务器后   需要重启备用服务器的同步进程(进入mysql控制台==>stop slave==>start slave)

否则  备用服务器无法同步主服务器数据库

 

主从服务器共享文件夹

主服务器配置(服务端)

yum install nfs-utils  #安装nfs软件包  (中间有询问按y后直接回车)
iptables -F  #清空iptables防火墙默认策略  以免默认的防火墙策略禁止正常的NFS共享服务
service iptables save  #保存配置


mkdir /home/share  #将home下的share目录设置为共享文件夹
chmod -Rf 777 /home/share  #设置权限
echo "welcome to nfs ttest" > /home/share/readme  #新建readme文件  并写入内容
vim /etc/exports  #修改配置文件  定义要共享的目录与相应的权限
/home/share 192.168.25.139(rw,insecure,sync,no_root_squash)  #此ip是备用服务器ip


service iptables stop  #关闭防火墙
service rpcbind restart  #重启rpcbind服务
service nfs restart  #重启nfs服务


备用服务器配置(客户端)
showmount -e 192.168.25.137  #显示服务端的共享列表
mkdir /home/share  #创建挂载目录
mount -t nfs 192.168.25.137:/home/share /home/share  #前面的share是服务端要共享的目录  后面的share是客户端本地目录

#也就是说  将服务端共享的share文件挂载到客户端的share文件夹中

 

centos双机热备 数据库主从相互备份(上):https://blog.csdn.net/Berzingou/article/details/82017228