#mysql读写分离测试

环境centos 7.4 ,docker 17.12 ,docker-compose

mysql 5.7 主从

mycat 1.6 读写分离

maxscale 2.2.4 读写分离

#################################

下载docker-compose文件

git clone https://gitee.com/almi/docker-compose.git
cd mysql # 构建mycat、maxscale镜像

启动

docker-compose up -d

#查看  

docker-compose ps
# Name Command State Ports
# -----------------------------------------------------------------------------------------------
# db-m1 docker-entrypoint.sh mysqld Up 0.0.0.0:3300->3306/tcp
# db-s1 docker-entrypoint.sh mysqld Up 0.0.0.0:3301->3306/tcp
# db-s2 docker-entrypoint.sh mysqld Up 0.0.0.0:3302->3306/tcp
# maxscale /maxscale Up 0.0.0.0:4006->4006/tcp, 0.0.0.0:6603->6603/tcp
# mycat ./mycat console Up 0.0.0.0:8066->8066/tcp, 0.0.0.0:9066->9066/tcp
# phpadmin /run.sh phpmyadmin Up 0.0.0.0:336->80/tcp, 9000/tcp #查看日志# docker logs db-m1
docker logs db-s1
docker logs db-s2
docker logs mycat
# 或者这样
docker-compose logs maxscale

#################################

# mysql主从配置

 #master设置同步账户slave@mypwd
docker-compose exec db-m1 mysql -uroot -pmytest -e "
create user slave;
grant replication slave on *.* to 'slave'@'172.18.18.%' identified by 'mypwd';
flush tables with read lock;
show master status;
" #查看master-bin 和 id
# +-------------------+----------+
# | File | Position |
# +-------------------+----------+
# | master-bin.000003 | 647 |
# +-------------------+----------+ #slave配置连接master
#使用刚查询的File和Position参数 # db-s1设置同步
docker-compose exec db-s1 mysql -uroot -pmytest -e "
change master to master_host='172.18.18.10',
master_port=3306,
master_user='slave',
master_password='mypwd',
master_log_file='master-bin.000003',
master_log_pos=647;
start slave;
"
#查看同步
docker-compose exec db-s1 \
mysql -uroot -pmytest -e "show slave status\G;" | grep Running #成功标示如下:
# Slave_IO_Running: Yes
# Slave_SQL_Running: Yes #db-s2同上 #在master创库创表,在salve查看

#################################

安装mysql客户端

yum install mariadb -y

#################################

# mycat 读写分离测试

#登录mycat代理端口
mysql -h 172.18.18.1 -P 8066 -uroot -p123 -e "select @@hostname;" | grep db #批量查询10次
for i in `seq 1 10`;do mysql -h 172.18.18.1 -P 8066 -uroot -p123 -e "select @@hostname;" | grep db;done # 多次查询,会分别显示不同的hostname,查询基本轮询了 #查询database只能看到testdb
#因为配置文件只设置了这个库

#其它测试
#在master创建testdb数据库
docker-compose exec db-m1 mysql -uroot -pmytest -e "create database testdb;show databases;" #登录mycat创建库testdb表name
mysql -h 172.18.18.1 -P 8066 -uroot -p123
#
create database testdb;
use testdb;
create table name
(
sid varchar(20),
sname varchar(50),
primary key (Sid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
show tables; #插入数据
use testdb;
insert into `name`(sid,sname) values ('001','张三');
insert into `name`(sid,sname) values ('002','李四'); select * from testdb.name; #在db-s1 db-s2分别插入不同数据,在登录mycat查询

#################################

#maxscale读写分离测试


#登录MySQL每个节点,创建监控、路由用户
# 略,本实例直接使用root用户 #登录maxscale代理查询mysql
mysql -uroot -pmytest -h 172.18.18.1 -P4006 -e "select @@hostname;" #查询10次
for i in `seq 1 10`;do mysql -uroot -pmytest -h 172.18.18.1 -P4006 -e "select @@hostname;" | grep db;done # 本次查询,全部是db-s1节点,关闭s1节点后才是s2节点
# 由于使用最新版的,不知道是配置问题还是bug

#登录maxcale管理查看状态
mysql -h 172.18.18.1 -P6603 -uadmin -pmariadb
#查询如下,更多命令查看 help # MaxScale> list servers
# Servers.
# -------------------+-----------------+-------+-------------+--------------------
# Server | Address | Port | Connections | Status
# -------------------+-----------------+-------+-------------+--------------------
# server1 | 172.18.18.10 | 3306 | 0 | Master, Running
# server2 | 172.18.18.11 | 3306 | 0 | Slave, Running
# server3 | 172.18.18.12 | 3306 | 0 | Slave, Running
# -------------------+-----------------+-------+-------------+--------------------
# MaxScale> list services
# Services.
# --------------------------+-------------------+--------+----------------+-------------------
# Service Name | Router Module | #Users | Total Sessions | Backend databases
# --------------------------+-------------------+--------+----------------+-------------------
# Read-Write-Service | readwritesplit | 1 | 22 | server1, server2, server3
# MaxAdmin-Service | cli | 2 | 3 |
# --------------------------+-------------------+--------+----------------+------------------- #other
#配置里使用加密密码
#创建加密文件
maxkeys /var/lib/maxscale/.secrets
#生成加密后的密码123
maxpasswd /var/lib/maxscale/ 123

docker环境 mysql读写分离 mycat maxscale的更多相关文章

  1. MySQL读写分离---Mycat

    一.什么是读写分离 在数据库集群架构中,让主库负责处理事务性查询,而从库只负责处理select查询,让两者分工明确达到提高数据库整体读写性能.当然,主数据库另外一个功能就是负责将事务性查询导致的数据变 ...

  2. Docker安装Mycat并实现mysql读写分离,分库分表

    Docker安装Mycat并实现mysql读写分离,分库分表 一.拉取mycat镜像 二.准备挂载的配置文件 2.1 创建文件夹并添加配置文件 2.1.1 server.xml 2.1.2 serve ...

  3. Mycat安装并实现mysql读写分离,分库分表

    Mycat安装并实现mysql读写分离,分库分表 一.安装Mycat 1.1 创建文件夹 1.2 下载 二.mycat具体配置 2.1 server.xml 2.2 schema.xml 2.3 se ...

  4. 提高性能,MySQL 读写分离环境搭建

    这是松哥之前一个零散的笔记,整理出来分享给大伙! MySQL 读写分离在互联网项目中应该算是一个非常常见的需求了.受困于 Linux 和 MySQL 版本问题,很多人经常会搭建失败,今天松哥就给大伙举 ...

  5. 提高性能,MySQL 读写分离环境搭建(一)

    这是松哥之前一个零散的笔记,整理出来分享给大伙! MySQL 读写分离在互联网项目中应该算是一个非常常见的需求了.受困于 Linux 和 MySQL 版本问题,很多人经常会搭建失败,今天松哥就给大伙举 ...

  6. MySQL读写分离之MyCAT

    Mycat实现MySQL主从复制读写分离 MyCAT的安装及部署 1.部署jdk环境 MyCAT用Java开发,需要有JAVA运行环境,mycat依赖jdk1.7的环境 1)上传jdk [root@l ...

  7. 基于MYCAT中间件实现MYSQL读写分离

    基于mycat实现mysql读写分离 完成主从复制的配置 /* 主节点:192.168.47.101 从节点:192.168.47.102 */ /*mycat为同一网段客户端*/ /* 修改主节点基 ...

  8. 高可用Mysql架构_Mysql主从复制、Mysql双主热备、Mysql双主双从、Mysql读写分离(Mycat中间件)、Mysql分库分表架构(Mycat中间件)的演变

    [Mysql主从复制]解决的问题数据分布:比如一共150台机器,分别往电信.网通.移动各放50台,这样无论在哪个网络访问都很快.其次按照地域,比如国内国外,北方南方,这样地域性访问解决了.负载均衡:M ...

  9. mysql读写分离的解决方案

    来源于网上整理 http://yanwt.iteye.com/blog/1460780 现有三种解决方式实现mysql读写分离 1 程序修改mysql操作类 优点:直接和数据库通信,简单快捷的读写分离 ...

随机推荐

  1. git出现错误原因解释

    原因,在pull下拉代码或者push之前,你本地还有代码没有进行commit. 引起下面的错误.   建议commit后先pull再看看有没有冲突在进行push. git.exe push --pro ...

  2. bootstrap——bootstrap-table(2)

    先看问题现象: 问题描述: 点击"管理子账号"按钮,预期是按照传递的参数更新列表数据,但是最后才发现这个列表根本不会刷新,只会继承前一次的数据,意思也就是不会去请求第二次. 解决方 ...

  3. Javascript中获取浏览器类型和操作系统版本等客户端信息常用代码

    /** * @author hechen */ var gs = { /**获得屏幕宽度**/ ScreenWidth: function () { return window.screen.widt ...

  4. cogs 619. [金陵中学2007] 传话

    提交地址:http://cojs.tk/cogs/problem/problem.php?pid=619 619. [金陵中学2007] 传话 ★☆   输入文件:messagez.in   输出文件 ...

  5. [ZJOI 2006]超级麻将

    Description Input 第一行一个整数N(N<=100),表示玩了N次超级麻将. 接下来N行,每行100个数a1..a100,描述每次玩牌手中各种牌的数量.ai表示数字为i的牌有ai ...

  6. 【BZOJ1951】【SDOI2010】古代猪文

    Background "在那山的那边海的那边有一群小肥猪.他们活泼又聪明,他们调皮又灵敏.他们自由自在生活在那绿色的大草坪,他们善良勇敢相互都关心--" --选自猪王国民歌 很久很 ...

  7. bzoj 3214: [Zjoi2013]丽洁体

    Description 平时的练习和考试中,我们经常会碰上这样的题:命题人给出一个例句,要我们类比着写句子.这种往往被称为仿 写的题,不单单出现在小学生的考试中,也有时会出现在中考中.许多同学都喜欢做 ...

  8. hdu 5868 Polya计数

    Different Circle Permutation Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 262144/262144 K ...

  9. Educational Codeforces Round 18

    A. New Bus Route 题目大意:给出n个不同的数,问差值最小的数有几对.(n<=200,000) 思路:排序一下,差值最小的一定是相邻的,直接统计即可. #include<cs ...

  10. ubuntu 16.04常见错误--Could not get lock /var/lib/dpkg/lock解决

    我的博客 ubuntu常见错误--Could not get lock /var/lib/dpkg/lock解决 通过终端安装程序sudo apt-get install xxx时出错: E: Cou ...