centos双机热备 数据库主从相互备份(上):https://blog.csdn.net/Berzingou/article/details/82017228
相关资料网盘链接:https://pan.baidu.com/s/1Zgx3hRB400JFLIGHPVdtJA 密码:gg8x
mysql互为主从同步配置
一、远程连接数据库并导入sql文件
使用navicat分别远程连接主从mysql服务器
各自创建一个名称为ssm的数据库用于测试(因为这个数据库后面还会继续用到 请务必保证名称是ssm)
初始化数据 初始化完成后是这样的:(主从数据库初始数据请务必保持一致)
二、关闭SELINUX(两台服务器都要执行此操作)
vim /etc/selinux/config #配置config文件
按i进入编辑模式
#SELINUX=enforcing #注释掉
#SELINUXTYPE=targeted #注释掉
SELINUX=disabled #增加
reboot #重启服务器使配置生效
查看SELinux状态
三、配置mysql主服务器(192.168.3.13)
mysql -u root -p #登录mysql主服务器控制台
输入密码
grant all privileges on *.* to 'userbak' @'192.168.3.13' 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.3.13 -p #在备用服务器中去连接主服务器(192.168.3.13是主服务器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系统数据库
这里复制配置时要检查一下 是否带上了什么不能识别的字符
=================================================================begin
=================================================================end
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.3.14)
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.3.13',master_user='userbak',master_password='123456',master_log_file='mysql-bin.000001' ,master_log_pos=120; #执行同步语句
#这里的master_log_file和master_log_pos就是我们之前记录的值
#特别的!!192.168.3.13是主服务器ip
start slave; #开启slave同步进程
show slave status\G; #查看slave同步信息,出现以下内容
现在 mysql主服务修改数据后 备用服务器也会同步修改数据
五、主从同步配置
我们接下来要实现的是 备用mysql服务器修改数据后 mysql主服务器也会同步修改 也就是相互备份
进入备用mysql服务器 进入mysql控制台
grant all privileges on *.* to 'userbak' @'192.168.3.14' identified by '123456';
#授权用户userbak能通过备用服务器ip访问备用服务器中的mysql
#192.168.3.14是备用服务器ip
grant all privileges on *.* to 'userbak' @'%' identified by '123456'; #开启远程连接权限
flush privileges; #刷新mysql系统权限相关表
测试在mysql主服务器上是否能连接mysql备用服务器
切到mysql主服务器
退出mysql主服务器控制台
mysql -u userbak -h 192.168.3.14 -p #192.168.3.14是备用服务器的ip
输入密码
成功登录!
exit #退出主服务器下的备用服务器的mysql控制台 这里特别提醒一下 测试完成后注意请立即退出(因为这个是备用服务器的mysql)!!!!!
再次切到mysql备用服务器
在mysql控制台中输入
show master status;
可以看到以下内容:
记住这里的file值:mysql-bin.000001和position的值:641 后面会用到
切换到mysql主服务器
mysql -u root -p #登录mysql控制台
stop slave; #先在mysql控制台中停止slave同步
change master to master_host='192.168.3.14',master_user='userbak',master_password='123456',master_log_file='mysql-bin.000001' ,master_log_pos=641;
#执行同步语句
#这里的master_log_file和master_log_pos就是我们之前记录的值
#再次强调 192.168.3.14是备用服务器的ip
start slave; #重新开启slave同步
show slave status\G; #查看slave同步信息,会出现以下内容
出现了以上信息就说明主服务器能够同步备用服务器上的数据
再来检查一下我们之前配置好的备用服务器能不能同步主服务器的数据
首先 我们在主服务器中执行 show master status;
我们发现 File和Position的值改变了(所以我们之前的配置要改一下)!!!! 记住这两个值
进入备用服务器
stop slave; 停止同步线程
change master to master_host='192.168.3.13',master_user='userbak',master_password='123456',master_log_file='mysql-bin.000004' ,master_log_pos=374; #将上边查出来的值重新执行一下
start slave; #重新开启slave同步
show slave status\G; #查看slave同步信息,会出现以下内容
六、主从同步测试
使用navicat远程连接两个数据库
修改t_user表中的数据
修改主服务器中的数据 你会发现备用服务器数据会随之改变
反之 修改备用服务器中的数据 你会发现主服务器中的数据会随之改变
到此 我们就实现了mysql主从服务器相互备份
centos双机热备 数据库主从相互备份(上):https://blog.csdn.net/Berzingou/article/details/82017228