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

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

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

mysql互为主从同步配置

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

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

二、关闭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)
输入密码
成功登录!

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

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

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


cp my-default.cnf /etc/my.cnf  #将mysql目录下面的my-default.cnf拷贝到etc下面去  并命名为my.cnf
vim /etc/my.cnf  #编辑my.cnf文件  在[mysqld]后面添加配置内容
按i进入编辑模式
配置内容如下:

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)

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


记住这里的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进入编辑模式
配置内容如下:

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,否则请返回修改配置文件

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同步信息,出现以下内容

现在   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
输入密码
成功登录!


exit  #退出主服务器下的备用服务器的mysql控制台  这里特别提醒一下  测试完成后注意请立即退出(因为这个是备用服务器的mysql)!!!!!

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


记住这里的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同步信息,会出现以下内容

六、主从同步测试

使用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  #查看内容


./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

三、测试总体效果

访问主服务器

访问备用服务器

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

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

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

当重启主服务器后   需要重启备用服务器的同步进程(进入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

猜你喜欢

转载自blog.csdn.net/Berzingou/article/details/82026815