实现MySQL读写分离---maxscale代理服务器配置(详解)
作者:CSDN阿坤
著作:Maxscale读写分离服务
说明:需要动的地方都有注释,没注释的默认即可
1.前提必须配好两台的主从服务并另配一台maxscale服务器.
2.大致流程就是大家熟知的黯然销魂三部曲:安包---->修改配置文件---->启服务!
************首先进入到maxscale服务器上配置
[root@mysqlmaxscale~]#yum -y install maxscale-2.1.2-1.rhel.7.x86_64.rpm
[root@mysqlmaxscale~]#systemctl stop mysqld #确保数据库服务关闭,涉及到端口冲突
[root@mysqlmaxscale~]#vim /etc/maxscale.cnf[maxscale]
threads=auto #设置为根据cpu性能来设置开启线程数量(建议auto)
#设置所用到的两个服务器(可设置多个,5yy和p即可粘贴格式)
[server1] #名不可重复
type=server
address=192.168.4.51 #你所用到的服务器ip
port=3306
protocol=MySQLBackend[server2]
type=server
address=192.168.4.52 #同上
port=3306
protocol=MySQLBackend#监控用户信息配置区(用于检查主从服务状态以及MySQL服务状态)
[MySQL Monitor]
type=monitor
module=mysqlmon
servers=server1,server2 #写入上面所用到的服务器server1与server2
user=maxscalemon #用户名和密码可自定义,但用户授权时必须一致
passwd=123456
monitor_interval=10000#读写权限用户配置区(用于检查用户账户是否存在以及读写分离的分配,也就是告诉系统:主-write,从-read)
[Read-Write Service]
type=service
router=readwritesplit
servers=server1,server2 #写入参与的服务器server1与server2
user=maxscalerouter #用户名和密码可自定义,但用户授权时必须一致
passwd=123456
max_slave_connections=100%
#以上两个用户maxscalemon以及maxscalerouter在MySQL中需要grant授权#maxadmin管理用户配置区(maxscale自带本地用户无需grant授权)
[MaxAdmin Service]
type=service
router=cli[Read-Write Listener]
type=listener
service=Read-Write Service
protocol=MySQLClient
port=4006[MaxAdmin Listener]
type=listener
service=MaxAdmin Service
protocol=maxscaled
socket=default
port=4016 #端口需要自己加上(任意没有用到的端口即可)
***********其次进入到master主服务器配置(slave从服务上配置是不会被同步到master主服务器的)
[root@mysqlmaster~]#mysql -p123456
#密码设为123456的前提必须保证policy=0(密码认证强度规则关闭),length=6(密码只读6位).
#replication slave授予可检查主从状态权限,replication client授予检查数据库mysql的状态权限.
#maxscalemon为mon=monitor监视用户,maxscalerouter路由用户:用来区分读写分离分别是那台服务器
mysql> grant replication slave,replication client on *.* to maxscalemon@'%' identified by '123456';
Query OK, 0 rows affected, 1 warning (0.08 sec)
mysql> grant select on mysql.* to maxscalerouter@"%" identified by '123456';
Query OK, 0 rows affected, 1 warning (0.12 sec)
**********授权结束后回到maxscale服务器上检查配置文件,确认无误后启动maxscale服务
[root@mysqlmaxscale~]#maxscale -f /etc/maxscale.cnf #maxscale内置启动命令
[root@mysqlmaxscale~]#netstat -ntlup |grep maxscale
tcp6 0 0 :::4006 :::* LISTEN 1215/maxscale
tcp6 0 0 :::4016 :::* LISTEN 1215/maxscale
#启动服务后日志文件就会生成: /var/log/maxscale/maxscale.log
[root@mysqlmaxscale~]#cat /var/log/maxscale/maxscale.log
#在日志信息中notice(注意)视为正常运行成功信息,如果为error则表示启动失败
2019-09-06 11:16:46 notice : Working directory: /var/log/maxscale
2019-09-06 11:16:46 notice : MariaDB MaxScale 2.1.2 started
2019-09-06 11:16:46 notice : MaxScale is running in process 1215
2019-09-06 11:16:46 notice : Configuration file: /etc/maxscale.cnf
2019-09-06 11:16:46 notice : Log directory: /var/log/maxscale
........
[root@mysqlmaxscale~]#maxadmin -uadmin -pmariadb -P4016 #maxscale管理用户本地登录
#非本地登录: mysql -hmysql57 -P4016 -uadmin -pmariadb(前提必须开启maxscale服务器上的mysql服务,否则报错)
MaxScale> list servers #配置maxscale服务成功后,输入此命令可监察到主从状态
Servers.
-------------------+-----------------+-------+-------------+--------------------
Server | Address | Port | Connections | Status
-------------------+-----------------+-------+-------------+--------------------
server1 | 192.168.4.51 | 3306 | 0 | Master, Running
server2 | 192.168.4.52 | 3306 | 0 | Slave, Running
-------------------+-----------------+-------+-------------+--------------------
MaxScale> exit #退出命令(也可以用quit)
**********到此处呢maxscale整个服务就配置完成了,接下来我们进行配置测试:
测试分为两个步骤:
一、测试主从服务:
#进入主服务器创库建表授权
[root@mysqlmaster ~]# mysql -p123456
mysql> create database db7;
Query OK, 1 row affected (0.12 sec)
mysql> create table db7.test(id int);
Query OK, 0 rows affected (0.46 sec)
mysql> grant select,insert on db7.* to wxk@"%" identified by '123456';
Query OK, 0 rows affected, 1 warning (0.12 sec)
#进入从服务器查询权限
[root@mysqlslave ~]# mysql -p123456 -e "show grants for wxk;"
+------------------------------------------------------------+
| Grants for wxk@% |
+------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'wxk'@'%' WITH GRANT OPTION |
| GRANT SELECT, INSERT ON `db7`.* TO 'wxk'@'%' |
+------------------------------------------------------------+
2 rows in set (0.00 sec)
#进入客户端查询权限并使用所拥有权限加以确认
[root@mysqlclient ~]# mysql -hmysql51 -uwxk -p123456
mysql> show grants;
+------------------------------------------------------------+
| Grants for wxk@% |
+------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'wxk'@'%' WITH GRANT OPTION |
| GRANT SELECT, INSERT ON `db7`.* TO 'wxk'@'%' |
+------------------------------------------------------------+
2 rows in set (0.00 sec)
mysql> select * from db7.test;
Empty set (0.01 sec)
mysql> insert into db7.test values(6565);
Query OK, 1 row affected (0.16 sec)
mysql> select * from db7.test;
+------+
| id |
+------+
| 6565 |
+------+
1 row in set (0.00 sec)
mysql>quit
二、测试读写分离:
#进入从服务器进行数据插入
[root@mysqlslave ~]# mysql -p123456
mysql> insert into db7.test values(7879);
Query OK, 1 row affected (0.13 sec)
mysql> select * from db7.test;
+------+
| id |
+------+
| 6565 |
| 7879 |
+------+
2 rows in set (0.00 sec)
mysql>exit
#进入主服务器查看(主服务器是无法同步从服务器的)
[root@mysqlmaster ~]# mysql -p123456 -e "select * from db7.test;"
+------+
| id |
+------+
| 6565 |
+------+
1 row in set (0.00 sec)
mysql>quit
#进入客户端链接4006端口(读写监听端口服务)
[root@mysqlclient ~]# mysql -hmysql57 -uwxk -p123456 -P4006
mysql> select * from db7.test; #此时查看到的数据7879是slave从服务器上所插入的数据
+------+
| id |
+------+
| 6565 |
| 7879 |
+------+
2 rows in set (0.00 sec)
mysql>exit
*****************当看到从服务器上插入的7879数据时则表示读写分离配置成功!
喜欢的朋友点击关注不迷路熬!(对您有用的话就给个赞吧,有赞有鼓励,干劲满满的!谁还不是个孩子呢!!)
实现MySQL读写分离---maxscale代理服务器配置(详解)相关推荐
- MySQL调优(八):查缺补漏(mysql的锁机制,读写分离,执行计划详解,主从复制原理)
mysql的锁机制 1.MySQL锁的基本介绍 锁是计算机协调多个进程或线程并发访问某一资源的机制.在数据库中,除传统的 计算资源(如CPU.RAM.I/O等)的争用以外,数据也是一种供许多用户共 ...
- Maxscale实现MySQL读写分离
作用:实现数据访问读写分离,减轻单台服务器的兵法访问压力 前提:实现主从同步 原理: MySQL读写分离是指,作为后端mysql主从服务器的代理,它直接接受客户端的请求,对SQL语句进行分析,判断出是 ...
- 配置MySQL读写分离架构,采用maxscale
配置MySQL读写分离架构,采用maxscale 配置MySQL读写分离架构 采用maxscale 下载maxscale 配置MySQL主从架构 配置MySQL主服务器 配置MySQL从服务器 配置m ...
- maxscale mysql5.7_Maxscale实现Mysql读写分离
Maxscale实现Mysql读写分离: 注: 1.该工具只有一主,如主出了问题整体会有10s左右不可用(即使从会自动切为主). 2.读设置的2台实际只生效了1台. rpm -i maxscale-2 ...
- Amoeba数据库代理 实现mysql读写分离
Amoeba 依赖jdk centons7安装jdk8 目前Amoeba for Mysql最新版本为amoeba-mysql-3.0.5-RC-distribution.zip. 安装过程很简单 ...
- 基于MaxScale中间件的MySQL读写分离
基于MaxScale中间件的MySQL读写分离 概述 maxscale 基于keepalived的高可用,通过VIP提供服务 maxscale官网:https://mariadb.com/downlo ...
- mysql读写分离实战
一个完整的MySQL读写分离环境包括以下几个部分: 应用程序client database proxy database集群 在本次实战中,应用程序client基于c3p0连接后端的database ...
- mysql读写分离,主从配置
2019独角兽企业重金招聘Python工程师标准>>> 一个完整的mysql读写分离环境包括以下几个部分: 应用程序client database proxy database集群 ...
- mysql读写分离6_6\MySQL 主从同步 、 MySQL 读写分离 、 MySQL 性能调优
day06 一.mysql主从同步 二.数据读写分离 三.MySQL优化 ++++++++++++++++++++++++++++++++ 一.mysql主从同步 1.1 主从同步介绍?从库服务器自动 ...
- mysql 读写分离缺点6_6\MySQL 主从同步 , MySQL 读写分离 , MySQL 性能调优
6\MySQL 主从同步 , MySQL 读写分离 , MySQL 性能调优 day06 一,mysql 主从同步 二,数据读写分离 三,MySQL 优化 ++++++++++++++++++++++ ...
最新文章
- 十进制度转换为度分秒
- [python网络编程]DNSserver
- docker常用命令(总结)
- Triangular Sums http://acm.nyist.net/JudgeOnline/problem.php?pid=122
- 关于烂代码的那些事——什么是好代码
- JavaScript ECMA
- jQuery扩展实现复选框批操作
- mysql innodb架构_Mysql Innodb体系结构
- IDEA 配置Tomcat运行Servlet项目
- UVA10420 List of Conquests【map】
- oracle高效分页存储过程(百万数据级)
- Linux内核移植操作步骤
- 「HenCoder Plus」Android 高级培养计划 FAQ
- 人大金仓数据库迁移工具
- JAVA反射机制Reflection详解
- 户外运动耳机如何选择、最优秀的五款户外运动耳机推荐
- 构造和析构:construct,destory
- Python学习(六)——格式化输出
- iOS wkWebview播放HTML5 video视频 自动全屏问题解决
- sock5系列之模拟tcp请求sock5服务器!(三)
热门文章
- 软件测试技术(思维导图)
- RX 470 480 570 580 590 5700 6600 5600 6900 6800在WIN10上玩GTA5 闪退,无法运行,打不开,解决方案
- CoAP协议 libcoap API
- 系列课程 ElasticSearch 之第 5 篇 —— Kibana 高级查询语句、DSL语言查询和过滤、中文分词器(elasticsearch.bat闪退解决办法)
- 浅谈 MyBatis 缓存
- 做自媒体原创视频多平台分发,视频一键发布多平台方法教程
- python3爬虫系列20之反爬需要登录的网站三种处理方式
- macbook加入路由_笔记本怎么安装无线路由器 MacBook安装无线路由器方法【详细步骤】...
- 直线检测-Radon变换、Hough变换
- PID算法优化之积分器抗饱和处理