目录
一、简介 二、环境准备 1.基础环境 三、安装Mysql主从配置 1.部署信息 2.主节点配置文件 3.创建mysql容器 4.开启主从复制 5、安装Mycat 四、Mycat分库分表实践测试 1.master节点手动创建数据库 2.开启mycat 2.放行mycat通信端口 3. mycat连接 总结一、简介
本文使用docker实现mysql主从配置,读写分离、分库分表等功能。
二、环境准备
1.基础环境
docker
三、安装Mysql主从配置
1.部署信息
2.主节点配置文件
创建mysql主节点配置文件
创建主节点配置文件docker.cnf
创建从节点配置文件 docker.conf
3.创建mysql容器
此处使用mariadb最新稳定镜像创建容器
创建主节点myslq
创建从节点mysql
4.开启主从复制
step 1 进入主节点
step 2 创建用户
step 3 进入从节点创建用户开启同步
开启主从复制:
从节点设置日志和文件名要跟主节点信息对应,包括日志记录起始位置position
检查主从复制是否OK
Slave出现2个YES,代表主从复制设置成功。
5、安装Mycat
下载mycat在50节点实现安装
修改mycat目录下 conf的server.xml 文件,指定用户名和密码
上述配置,指定以root为用户名,密码为123456,访问虚拟逻辑数据库test。
配置rule规则
修改mycat conf 文件夹下的schema.xml 配置数据库对应规则
上述配置scheam name 对应server配置文件的虚拟数据库,指定了2个表信息,tb_user 表主键实现自增长,有4个数据库节点,使用userrule表规则。
dataNode 指定了真实对应的物理数据库节点,对应dataHost说明了读写指定的用户和节点信息。
配置表分片规则文件rule.xml
上述文件重点关注第一个tableRule、rule指定了分片规则在哪个表字段,algorithm指定了分片的算法,其中 func1 与文件后面function名称为func1对应,此处使用了PartitionByLong分片算法。
conf下增加sequence_conf.properties文件,其内容如下:
主要申明了主键增长的策略。
四、Mycat分库分表实践测试
1.master节点手动创建数据库
master节点手动创建4个数据库db1,db2,db3,db4 (不要操作从节点)
此时打开slave节点,会观察到slave也会自动创建4个数据库。
2.开启mycat
使用命令 ./mycat start 开启mycat
./mycat start 启动
./mycat stop 停止
./mycat console 前台运行
./mycat restart 重启服务
./mycat pause 暂停
./mycat status 查看启动状态如果启动失败,请查看 /usr/local/mycat的wrapper.log 日志文件信息。
如果遇到上述错误,请在mycat 目录创建logs 文件夹,重新启动即可。
上述消息则表示mycat启动成功。
2.放行mycat通信端口
使用docker镜像开启mycat容器实例
或者关闭防火墙。
3. mycat连接
使用navicate连接mycat,端口8066(9066为管理端口)
使用命令连接mycat
管理端命令:
查看虚拟逻辑库:
使用逻辑库创建表:
可以看到mycat,mysql主从都创建了该表
在创建一张表:
插入一条数据:
为测试分库效果,我们插入不同ID的数据来观察一下:
可以看到数据分别分布在db1/db2/db3/db4,分布的规则取决于插入数据的主键在rule.xml 设置的分片规则约束。
查看mycat节点健康状态,在主节点输入如下命令:
上述 RS_CODE 1代表节点正常,-1代表节点异常。
查询mycat所有命令:
遇到如下错误:
修改schema.xml 文件属性checkSQLschema:
遇到如下错误:
请修改server.xml 文件,将user模块的defaultAccount取消:
最后放一张mycat查询结果截图:
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。
原文链接:https://juejin.im/post/5cbc6b7f518825324c44f47a