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
上一篇: 再谈 iOS App Crash 防护
下一篇: rsycn定时同步/备份异地主机文件