Linux Centos7中Mysql双主双从服务器部署
作用:
由于架构的扩展,业务量的越来越大,I/O访问频率过高此时需要作多库的存储,提高单个及其的I/O性能。而当一个主服务器出现故障后,此时另一个服务器仍可以继续工作
一.环境
准备4台干净的mysql服务器
192.168.122.196 master1
192.168.122.197 master2
192.168.122.198 slave1
192.168.122.199 slave2
如果是克隆的虚拟机要修改每台服务器UUID //vim /var/lib/mysql/auto.cnf
在每台服务器中配置所有服务器的域名 //vim /etc/hosts
二:配置
1,两台主服务器之间各配置为主从
M——M
master1:
vim /etc/my.cnf
validate_password=off
log-bin = my1log
server-id = 1
gtid_mode=ON //开启gtid
enforce_gtid_consistency=1
systemctl restart mysqld //重启mysql服务,使配置文件生效
创建授权账户:
grant all on . to 'slave'@'%' identified by '123';
master2:
vim /etc/my.cnf
validate_password=off
log-bin = my2log
server-id = 2
gtid_mode=ON
enforce_gtid_consistency=1
systemctl restart mysqld //重启mysql服务,使配置文件生效
help change master to 查找配置文件
edit
change master to
master_host='master1',
master_user='授权用户',
master_password='授权密码',
master_auto_position=1;
start slave;
show slave status\G
如果显示的
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
则说明部署成功
注意:
master2上也要创建一样的授权用户,在master1上进行change master to 的操作
2,两台从服务器分别将两台master配置为主服务器
S——S
slave1:
1,首先备份master1的所有数据,mysqldump -u root -p123 -A > /all.sql
2,scp 将数据发送到slave1和slave2
3,在mysql中将数据分别导入slave1和slave2的数据库中,source /all.sql
4,vim /etc/my.cof slave1和slave2做相同的操作
validate_password=off
log-bin = my3log
server-id = 3 //注意server-id 不能相同
gtid_mode=ON
enforce_gtid_consistency=1
relay_log_info_repository = TABLE
master_info_repository = TABLE
relay_log_recovery = on
当slave从库宕机后,假如relay-log损坏了,导致一部分中继日志没有处理,则自动放弃所有未执行的relay-log,并且重新从master上获取日志,这样就保证了relay-log的完整性
help change master to
edit
CHANGE MASTER TO
MASTER_HOST='master1/ip',
MASTER_USER='slave', //主服务器用户
MASTER_PASSWORD='big',
MASTER_AUTO_POSITION=1 FOR CHANNEL 'master1'
start slave;
show slave status;
edit
CHANGE MASTER TO
MASTER_HOST='master2/ip',
MASTER_USER='slave', //主服务器用户
MASTER_PASSWORD='big',
MASTER_AUTO_POSITION=1 FOR CHANNEL 'master2'
start slave;
show slave status\G
同理如果显示的
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
则说明部署成功
注意:slave1和slave2上做相同的change master to 操作。
如果不显示成功,错误可能有以下几点:
1,主从服务器的uuid相同,更改每台服务器UUID //vim /var/lib/mysql/auto.cnf
2,主从服务器的server-id相同,更改配置文件/etc/my.cnf中server-id,使每台服务器的server-id不同
3,主服务器与从服务器的数据不统一。
解决方法:
1,首先备份master1的所有数据,mysqldump -u root -p123 -A > /all.sql
2,scp 将数据发送到slave1和slave2
3,在mysql中将数据分别导入slave1和slave2的数据库中,source /all.sql
- eclipse环境下如何配置tomcat,并且把项目部署到Tomcat服务器上
- 阿里云服务器中tomcat部署项目验证码乱码
- Eclipse导入项目被认为不是Web项目无法部署到Tomcat服务器上的最简单解决办法
- 从零部署我的node应用(nginx反向代理到node服务器)
- webrtc学习: 部署stun和turn服务器
- Lync2010企业版部署存档服务器 推荐
- Exchange Server 2007迁移Exchange Server 2010 (7) ---部署Exchange2010服务器前端
- Linux 下部署了Nginx服务器,始终外网无法访问
- Lync Server 2013 的 Enterprise Edition 前端池部署中的服务器并置
- Centos环境下部署游戏服务器-软件安装
- Spring Boot项目部署到外部Tomcat服务器
- 菜鸟学Linux之八:LAMP架构之Apache服务器的虚拟主机创建与部署
- jar包部署到WebLogic服务器
- liunx 阿里云 统一服务器下 部署多个tomcat(亲试)
- Centos环境下部署游戏服务器-软件安装
- 超实用!!!使用IDEA插件Alibaba Cloud Toolkit工具一键部署本地应用到ECS服务器
- 阿里云服务器 操作实战 部署C语言开发环境(vim配置,gcc) 部署J2EE网站(jdk,tomcat)
- 持续集成篇_08_Hudson持续集成服务器的使用(自动化编译、分析、打包、部署)
- PXE项目实战,通过编写脚本自动安装系统时批量部署服务器所需要的所有服务