maxscale mysql 主从_MySQL高可用——MaxScale
MySQL高可用——MaxScale
羡仙. • 2020 年 02 月 26 日
本文基于MHA
依赖包yum install -y novacom-server.x86_64 libaio.x86_64 libaio-devel.x86_64
安装
官网下载地址
[root@localhost softpackage]# rpm -ivh maxscale-2.4.7-1.centos.7.x86_64.rpm
警告:maxscale-2.4.7-1.centos.7.x86_64.rpm: 头V4 RSA/SHA1 Signature, 密钥 ID 28c12247: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:maxscale-2.4.7-1 ################################# [100%]
Created symlink from /etc/systemd/system/multi-user.target.wants/maxscale.service to /usr/lib/systemd/system/maxscale.service.
环境介绍服务器功能hostnameMysql Server_id192.168.128.125从库qvbilam_mha_111
192.168.128.126主库qvbilam_mha_212
192.168.128.127从库qvbilam_mha_313
192.168.128.128从库qvbilam_mha_414
192.168.128.129MHA,MaxScalelocalhost-
使用
创建权限用户-- 创建监控账号
create user qvbilam_scale_monitor@'192.168.128.%' identified by 'qvbilam';
-- 授权用于监控服务账号权限
grant replication slave,replication client on *.* to qvbilam_scale_monitor@'192.168.128.%';
-- 创建路由账号
create user qvbilam_scale_route@'192.168.128.%' identified by 'qvbilam';
-- 授予路由账号权限
grant select on mysql.* to qvbilam_scale_route@'192.168.128.%';
修改配置# cp /etc/maxscale.cnf /etc/maxscale.cnf.back
vi /etc/maxscale.cnf
# --------------- 内容如下 ---------------
# 进程数,
[maxscale]
threads=auto
# 数据库地址
[server1]
type=server
address=192.168.128.125
port=3306
protocol=MariaDBBackend
[server2]
type=server
address=192.168.128.126
port=3306
protocol=MariaDBBackend
[server3]
type=server
address=192.168.128.127
port=3306
protocol=MariaDBBackend
[server4]
type=server
address=192.168.128.128
port=3306
protocol=MariaDBBackend
# 监控模块
[MariaDB-Monitor]
type=monitor
module=mariadbmon
servers=server1,server2,server3,server4 # 需要监控的服务器
user=qvbilam_scale_monitor # Mysql监控用户
password=qvbilam # Mysql监控密码
monitor_interval=2000 # 监控间隔时间/毫秒
# 只读模块,不需要注释掉
# [Read-Only-Service]
# type=service
# router=readconnroute
# servers=server1
# user=myuser
# password=mypwd
# router_options=slave
# 读写分离模块
[Read-Write-Service]
type=service
router=readwritesplit
servers=server1,server2,server3,server4 # 服务列表
user=qvbilam_scale_route # mysql创建的路由账号
password=qvbilam # mysql路由账号的密码
max_slave_replication_lag=60 # 从服务器延迟超过60秒后不参与读写分离的集群中
# 只读服务监听,不需要注释掉
# [Read-Only-Listener]
# type=listener
# service=Read-Only-Service
# protocol=MariaDBClient
# port=4008
# 读写分离监听
[Read-Write-Listener]
type=listener
service=Read-Write-Service
protocol=MariaDBClient
port=3006 # 默认4006,为了方便相当于使用mysql.
# maxadmin 服务
[MaxAdmin-Service]
type=service
router=cli
[MaxAdmin-Listener]
type=listener
service=MaxAdmin-Service
protocol=maxscaled
port=6603
启动# 惊奇的发现会自动生成maxscale 用户
[root@localhost ~]# cat /etc/passwd | grep maxscale
maxscale:x:995:994::/home/maxscale:/bin/false
# 启动报错
[root@localhost ~]# maxscale
Error: MaxScale cannot be run as root.
Failed to write child process message!
# 不让用root启动,用自动创建的用户启动测试
[root@localhost ~]# maxscale --u=maxscale
Failed to open file '/var/log/maxscale/maxscale.log': 13, Permission denied
# 给log文件权限后再启动
[root@localhost ~]# chmod 777 maxscale.log
[root@localhost maxscale]# maxscale --u=maxscale -f /etc/maxscale.cnf
# 通过maxadmin查看集群状态 默认账号admin,默认密码mariadb
[root@localhost ~]# maxadmin --user=admin --password=mariadb
MaxScale> list servers
Servers.
-------------------+-----------------+-------+-------------+--------------------
Server | Address | Port | Connections | Status
-------------------+-----------------+-------+-------------+--------------------
server1 | 192.168.128.125 | 3306 | 0 | Slave, Running
server2 | 192.168.128.126 | 3306 | 0 | Master, Running
server3 | 192.168.128.127 | 3306 | 0 | Slave, Running
server4 | 192.168.128.128 | 3306 | 0 | Slave, Running
-------------------+-----------------+-------+-------------+--------------------
测试
连接MaxScale# 连接监控服务器的maxscale服务
# -u: maxscale配置中[Read-Write-Service]模块下的user,即mysql中创建的路由用户
# -h: 监控服务器ip(没有启动mysql)
# -P: maxscale配置中[Read-Write-Listener]模块下的port,默认4406
mysql -uqvbilam_scale_route -pqvbilam -h192.168.128.129 -P3306
# 成功进入mysql界面
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 17
Server version: 5.7.25-log MySQL Community Server (GPL)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]>
读写分离
通过下面演示可以看到当执行读操作的时候,分配的主机名是qvbilam_mha_1(从库125),当执行事务也就是写操作的时候,分配的主机名为qvbilam_mha_2(主库126).# 测试读
MySQL [(none)]> select @@hostname;
+---------------+
| @@hostname |
+---------------+
| qvbilam_mha_1 |
+---------------+
1 row in set (0.01 sec)
# 测试写
MySQL [(none)]> begin;
Query OK, 0 rows affected (0.00 sec)
MySQL [(none)]> select @@hostname;
+---------------+
| @@hostname |
+---------------+
| qvbilam_mha_2 |
+---------------+
1 row in set (0.00 sec)
MySQL [(none)]> rollback;
Query OK, 0 rows affected (0.00 sec)
maxscale mysql 主从_MySQL高可用——MaxScale相关推荐
- mysql keepalived主从_mysql高可用架构之(一)基于自身主从复制&keepalived实现
系统环境及架构 #主机名 系统版本 mysql版本 ip地址 mysqlMaster centos7.4 mysql5.7 192.168.1.42 mysqlSlave centos7.4 mysq ...
- 方案 mysql 优点_mysql高可用方案分析
低读低写并发.低数据量方案 方案一:双机高可用方案 1.数据库架构图 2.特点 一台机器A作为读写库,另一台B作为备份库:A库故障后B库作为读写库:A库恢复后A作为备库. 3.开发说明 此种情况下,数 ...
- mysql主从及高可用3
loose-(加在数据前面,正确就起来,错误就警告但是不影响起来) 工作中尽量不要跨库操作,不然有可能会失效 目录 半同步复制 副服务器倒入恢复主服务器 复制过滤器 GTID复制 并行复制 (增加 ...
- MySQL 5.6通过Keepalived+互为主从实现高可用架构
本文将介绍两台Mysql如何实现高可用架构.通常我们会配置主从同步,但这样若主的Mysql挂掉,还需要手动干预,例如把指向主库的IP地址修改为指向从库的IP,为了实现自动切换到从数据库,我们可以使用K ...
- mysql高可用_mysql高可用方案
第一节:mysql 高可用方案 1.1 一主一从架构 mysql 配置为主从模式,从库是主库的 backup,同一时间设置其中一台为主服务器,提供读写,另一台服务器作为热备,不提供读写,通过复制与主服 ...
- nginx实现mysql高可用_MySQL高可用
3,nfs高可用,keepalive使用脚本(自己编写)vrrp_script {},通过脚本返回的状态(根据keepalive自定)判断drbd的主从,然后飘动vip,同时再触发脚本,切换drbd的 ...
- mysql keepalived双主双活_mysql高可用架构方案之中的一个(keepalived+主主双活)
Mysql双主双活+keepalived实现高可用 文件夹 1.前言... 4 2.方案... 4 2.1.环境及软件... 4 2.2.IP规划... 4 2.3.架构图... 4 3.安装设置MY ...
- 路由器snmp配置_基于keepalived配置数据库主从实现高可用
基于keepalived配置数据库主从实现高可用 使用keepalived来监听端口,实现数据库的高可用.实现效果,其中一台数据库服务器突然出故障或关机时,应该不影响应用正常运行,等待服务器启动之后, ...
- MySQL数据库的高可用方案总结
高可用架构对于互联网服务基本是标配,无论是应用服务还是数据库服务都需要做到高可用.虽然互联网服务号称7*24小时不间断服务,但多多少少有一些时候服务不可用,比如某些时候网页打不开,百度不能搜索或者无法 ...
- heartbeat+iscsi+mysql实现双机高可用
8.heartbeat+iscsi+mysql实现双机高可用 虚拟地址的迁移 iscsi提供存储共享 (mysql 是application 也可以是ftp web等) 在iscsi服务器上:10. ...
最新文章
- RichTextBox粘贴两次以及去掉粘贴内容的格式问题
- 进击的 Spring Cloud Alibaba —— 框架与服务
- 关于我在学习Javaweb时对Linux服务器安装配置jdk,tomcat,mysql的一些学习心得
- 演练 小说排行榜 0912
- 深度学习-函数-tf.nn.embedding_lookup 与tf.keras.layers.Embedding
- Spark基础学习笔记20:RDD持久化、存储级别与缓存
- python多用户登录_python 多用户登录
- 对象的List成员添加元素
- 矩阵理论应用之反射变换的理解
- java8steam流 filler_做有机硅,不懂英文哪能行?——赶紧收藏,说不定哪天就用到了!...
- 计算机学业水平考试反思总结8百,考试反思与总结
- python爬虫构建国外代理池_Ipidea丨构建Python网络爬虫代理池
- C语言 | 条件运算符
- html页面虚化,css实现背景虚化效果的示例代码
- 深度学习——Noisier2Noise
- Arduino-超声波测距仪-实现近距离蜂鸣器报警
- 专访羽顺热能董事长陈群:荣誉就是不懈的努力
- 计算机科学专刊的区别,EI和SCI期刊的正刊和专刊有区别吗
- jquery 插件 countdown.js 倒计时插件
- web渗透测试之攻破登录页面