Mysql-高可用集群[主从单一模式-binlog]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql-高可用集群[主从单一模式-binlog]相关的知识,希望对你有一定的参考价值。
操作过程:
- 【主,从节点】分别安装mysql服务
- 【主,从节点】设置mysql常用配置
- 1.添加管理员用户,设置:server-id
- 2.开启binlog,同步用户
- 3.添加防火墙规则
- 【从节点】同步主节点
- 1.设置主节点同步信息:文件,索引位置
- 2.查看状态
- 3.开始同步
- 测试同步操作
- 从节点失效后重新同步
节点IP:
- 主节点: 192.168.2.40
- 从节点: 192.168.2.41
1.【主,从节点】分别安装mysql服务:
下载安装: Mysql5.7,页面:
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
下载地址(我的操作系统centos):
https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.25-1.el7.x86_64.rpm-bundle.tar
需要组建:
// 卸载-mariadb
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
// 上传至服务器:
/usr/local/src/mysql-5.7.1
// 安装
rpm -ivh *.rpm
// 设置服务自启动,启动
systemctl enable mysqld && systemctl start mysqld
// mysql-5.7会把初始化密码写在日志文件中:
cat /var/log/mysqld.log | grep password
A temporary password is generated for [email protected]: %!CpVaxli5#s
// 测试登录
mysql -uroot -p
%!CpVaxli5#s
2.【主,从节点】设置mysql常用配置,添加管理员用户,设置:server-id
2-1.【主,从节点】配置服务:
vim /etc/my.cnf
// 字符集
character_set_server = utf8
// 节点ID:主,从要区别开不能一致
server-id = 40
// 【主节点】开启binlog
log-bin = mysql-bin
// 密码安全级别验证取消
validate_password = OFF
// 重启服务
systemctl restart mysqld
2-2.【主,从节点】添加用户:
// 登录
mysql -uroot -p
%!CpVaxli5#s
// 更改密码
set password for [email protected]=password(‘Aa123456‘);
// 添加外部访问用户
GRANT ALL PRIVILEGES ON *.* TO ‘myuser‘@‘%‘ IDENTIFIED BY ‘Aa123456‘ WITH GRANT OPTION;
FLUSH PRIVILEGES;
// 【主节点】,添加同步用户
GRANT REPLICATION SLAVE ON *.* to ‘repl‘@‘%‘ identified by ‘Aa123456‘;
2-3.【主,从节点】开启端口,测试链接:
// 允许3306端口,并重启防火墙生效
firewall-cmd --permanent --add-port=3306/tcp && firewall-cmd --reload
3.【从节点】同步主节点
3-1.【主节点】查看binlog信息
mysql -uroot -pAa123456
show master status;
![](https://s1.51cto.com/images/blog/201904/05/e20a25e3c7881d6a2a752f1a14db15f9.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
3-2.【从节点】设置同步
// 设置【主节点】同步信息
mysql -uroot -pAa123456
change master to master_host=‘192.168.2.40‘,master_port=3306,master_user=‘repl‘,master_password=‘Aa123456‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=154;
// 查看同步状态:
show slave status G;
![](https://s1.51cto.com/images/blog/201904/05/25e790b30b51252c13a4d7613e13d269.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
// 开始同步:
start slave;
// 查看同步状态:
show slave status G;
Slave_IO_Running: YES
Slave_SQL_Running: YES
// 查看线程(可以看到这两个线程: 等待主服务器更新事件,等待读取本地日志写入数据):
show processlist;
4.测试主从同步
// 1.远程连接主数据库:创建数据,表,添加数据
// 2.从数据库看是否已经同步
5.从节点失效后重新同步
# 【主节点】
reset master;
show master status G;
# 【从节点】
stop slave;
reset slave;
change master to master_host=‘192.168.2.40‘,master_port=3306,master_user=‘repl‘,master_password=‘Aa123456‘,master_log_file=‘mysql-bin.000001‘,master_log_pos=154;
start slave;
# 查看同步状态
show slave status G;
# 【主节点】加入数据测试从同步
# 【从节点】如果是虚拟机克隆的,需要注意一下几点:
1.更改IP
2.删除: /var/lib/mysql/auto.conf,uuid保存文件,重启的时候没有会自动生成
3.更改: /etc/my.cnf
server-id
4.重启mysqld服务:
systemctl restart mysqld
以上是关于Mysql-高可用集群[主从单一模式-binlog]的主要内容,如果未能解决你的问题,请参考以下文章