搭建开源数据库中间件MyCat2-配置mysql数据库双主双从

这篇具有很好参考价值的文章主要介绍了搭建开源数据库中间件MyCat2-配置mysql数据库双主双从。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

mycat2官网:MyCat2

前言:mycat2下载地址无法访问,不知道是不是被DNS污染了,还是需要搭梯子访问,所以我只能找到1.21的版本进行安装。搭建mycat2的前提是搭建数据库主从复制。

架构:双主双从

搭建开源数据库中间件MyCat2-配置mysql数据库双主双从,数据库,中间件,mycat2

配置:3台服务器,4台数据库;其中2台服务器为数据库各装主从配置,1台服务器为数据库中间件。

版本信息:mycat1.21,mysql8.0.16

下载地址:

安装程序包:http://dl.mycat.org.cn/2.0/install-template/mycat2-install-template-1.21.zip

Jar包:http://dl.mycat.org.cn/2.0/1.21-release/mycat2-1.21-release-jar-with-dependencies.jar

一、配置双主双从数据库

1、使用docker创建mysql数据库

安装mysql,安装4台数据库,名称和端口要区分开:

docker run -d --restart=always --name mysql-master -p 3306:3306 -v /home/apps/mysql-master/conf:/etc/mysql/conf.d -v /home/apps/mysql-master/data:/var/lib/mysql -v /etc/localtime:/etc/localtime:ro --security-opt seccomp=unconfined -e MYSQL_ROOT_PASSWORD=123456 mysql:8.0.16 --lower_case_table_names=1

2、配置mysql数据库:需要注意的是服务器id是唯一的,第一台可以设置5,第二台6,以此类推。

创建配置文件:vim /home/apps/mysql-master/conf/my.cnf

[mysqld]
# 服务器唯一id,默认值1
server-id=6
# 设置日志格式,默认值ROW
binlog_format=STATEMENT
# 二进制日志名,默认binlog
# log-bin=binlog
# 设置需要复制的数据库,默认复制全部数据库
#binlog-do-db=mytestdb
# 设置不需要复制的数据库
binlog-ignore-db=mysql
binlog-ignore-db=infomation_schema
binlog-ignore-db=sys
binlog-ignore-db=performance_schema
# 跳过缓存,解决连接数据库缓慢
skip-host-cache
skip-name-resolve

在主从配置完成前,请不要操作数据库写入,否则日志会更新,此时同步数据会不全,当然也可以用工具进行同步。

3、配置主从:

先配置master1和slave1之间的主从同步。在master1中查看日志名和postition

搭建开源数据库中间件MyCat2-配置mysql数据库双主双从,数据库,中间件,mycat2

在slave1中修改好master1的ip、用户名、密码、端口等,分别执行以下语句,配置后开启同步,查看显示同步状态。

-- 在主机master1中查询状态
SHOW MASTER STATUS;

slave1执行:
-- 配置主从同步
CHANGE MASTER TO MASTER_HOST='192.168.16.71', MASTER_USER='root',MASTER_PASSWORD='数据库密码', MASTER_PORT=3306,MASTER_LOG_FILE='binlog.000005',MASTER_LOG_POS=155;
-- 开启主从同步
START SLAVE;
-- 显示同步状态
SHOW SLAVE STATUS
-- 停止主从同步
stop slave; 
-- 重置同步配置,在从机上执行。功能说明:用于删除SLAVE数据库的relaylog日志文件,并重新启用新的relaylog文件。
reset slave all;

 配置完成后查看同步状态,IO和SQL状态均为YES,表示同步成功。显示为NO,表示失败,下方有失败原因。

搭建开源数据库中间件MyCat2-配置mysql数据库双主双从,数据库,中间件,mycat2

4、配置主-主之间的同步

其实两台主机之间的同步,和主从同步配置一样,把master1当做master2的从机,把master2当做master1的从机。

例如:在master1中配置:将ip换成master2的ip信息,相当于master2是master1的从机。以此配置master2。

master1执行:
-- 配置主从同步
CHANGE MASTER TO MASTER_HOST='192.168.16.72', MASTER_USER='root',MASTER_PASSWORD='数据库密码', MASTER_PORT=3306,MASTER_LOG_FILE='binlog.000005',MASTER_LOG_POS=155;
-- 开启主从同步
START SLAVE;
-- 显示同步状态
SHOW SLAVE STATUS
-- 停止主从同步
stop slave; 
-- 重置同步配置,在从机上执行。功能说明:用于删除SLAVE数据库的relaylog日志文件,并重新启用新的relaylog文件。
reset slave all;

当所有主从配置完成后,数据库的架构就可以了。 

二、配置mycat2

参考文档:Mycat2安装配置(窗外流星) · 语雀

官网:http://www.mycat.org.cn/
资源地址:http://dl.mycat.org.cn/2.0/
安装程序包:http://dl.mycat.org.cn/2.0/install-template/mycat2-install-template-1.21.zip
Jar包:http://dl.mycat.org.cn/2.0/1.21-release/mycat2-1.21-release-jar-with-dependencies.jar

下载安装程序包后解压,把jar包放到lib文件夹中,然后上传至中间件服务器/usr/local/目录中。mycat2依赖组件有:mysql8数据库,java8

1、安装mysql数据库

在数据库中间服务器中,需要安装mysql数据库当做逻辑库

配置yum源:

下载链接:https://dev.mysql.com/downloads/repo/yum/

# 下载mysql8 yum源

wget https://repo.mysql.com//mysql80-community-release-el8-9.noarch.rpm

# 安装mysql8 yum源

rpm -ivh mysql80-community-release-el8-9.noarch.rpm

# 安装mysql8社区版

yum -y install mysql-community-server

# 启动mysql并加入开机自启

systemctl enable mysqld --now

tips:

# 找到mysql初始密码
grep "password" /var/log/mysqld.log
# 修改mysql密码,密码要强密码,不然会提示不符合规则
ALTER USER 'root'@'%' IDENTIFIED BY '密码' PASSWORD EXPIRE NEVER;

mysql8.0.35授权远程登录
use mysql;
update user set user.Host='%'where user.User='root';
flush privileges; 

2、安装java8

参考资料:Jenkins安装多个jdk版本,并在项目中选择对应jdk版本_jenkins指定编译项目的jdk版本-CSDN博客

安装好后,解压到/usr/local,并配置vim /etc/profile,在最后加上java环境变量

export JAVA_HOME=/usr/local/jdk1.8.0_291
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

验证:java -version

搭建开源数据库中间件MyCat2-配置mysql数据库双主双从,数据库,中间件,mycat2

3、配置mycat2

配置逻辑梳理:

a、先做基本默认结构,连通mycat2的8066端口,可以访问成功;

b、配置schemas逻辑库;

c、配置clusters集群;

d、配置datasources数据源。

mycat2命令:

后台启动MyCat:./mycat start
查看启动状态:./mycat status
停止:./mycat stop
重启:./mycat restart
前台启动并在控制台打印日志(ctrl+c停止):./mycat console

目录结构如下:

搭建开源数据库中间件MyCat2-配置mysql数据库双主双从,数据库,中间件,mycat2

1).配置数据源datasources

cd /usr/local/mycat/conf/datasources

vim prototypeDs.datasource.json

搭建开源数据库中间件MyCat2-配置mysql数据库双主双从,数据库,中间件,mycat2

然后进入bin目录,启动mycat2,./mycat console

本地网络主机使用数据库连接软件,如navicat,地址是中间件服务器地址,端口为8066,连接成功即可创建成功。

搭建开源数据库中间件MyCat2-配置mysql数据库双主双从,数据库,中间件,mycat2

2).创建逻辑库schemas

连接到8066端口mysql数据库,创建项目所需要的数据库,这个是逻辑库的名称,创建的名称和实际数据库名称一样即可。其他条件不用加,例如特定字符集。

CREATE DATABASE database_name;

在此路径下schemas,就可以看到以数据库名自动建立的逻辑库json文件。 

搭建开源数据库中间件MyCat2-配置mysql数据库双主双从,数据库,中间件,mycat2

编辑新增的逻辑库json文件:

新增:"targetName":"wms",

这是集群名称,后面会和cluster对应,注意这是json文件,增加一行后面要加逗号,

搭建开源数据库中间件MyCat2-配置mysql数据库双主双从,数据库,中间件,mycat2

3).创建clusters集群

回到conf文件目录,进入clusters文件夹。复制默认集群配置文件prototype.cluster.json为新名称的集群

cp prototype.cluster.json wms.cluster.json

搭建开源数据库中间件MyCat2-配置mysql数据库双主双从,数据库,中间件,mycat2

编辑文件wms.cluster.json,其中masters和replicas是配置主从数据库服务器的,名称和后续数据源配置统一。注意故障自动切换需要搭配timer时间配置,否则无效。

搭建开源数据库中间件MyCat2-配置mysql数据库双主双从,数据库,中间件,mycat2

{
        "clusterType":"MASTER_SLAVE",
        "heartbeat":{
                "heartbeatTimeout":1000,
                "maxRetry":3,
                "minSwitchTimeInterval":300,
                "slaveThreshold":0
        },
        "masters":[
                "master1",
                "master2"
        ],
        "maxCon":200,
        "name":"wms",
        "readBalanceType":"BALANCE_ALL",
        "switchType":"SWITCH",
        "replicas":[
                "master2",
                "slave1",
                "slave2"
        ],
        "timer":{
        "initialDelay": 30,
        "period":5,
        "timeUnit":"SECONDS"
        }
}

4).配置datasources数据源

进入datasources目录,复制默认的prototypeDs.datasource.json文件,分别为主从数据库,以此文件名为master1,master2,slave1,slave2开头。

搭建开源数据库中间件MyCat2-配置mysql数据库双主双从,数据库,中间件,mycat2

依次编辑数据源文件: 

搭建开源数据库中间件MyCat2-配置mysql数据库双主双从,数据库,中间件,mycat2

以master1为例:vim master1.datasource.json

{
        "dbType":"mysql",
        "idleTimeout":60000,
        "initSqls":[],
        "initSqlsGetConnection":true,
        "instanceType":"READ_WRITE",
        "maxCon":1000,
        "maxConnectTimeout":3000,
        "maxRetryCount":5,
        "minCon":1,
        "name":"master1",
        "password":"数据库密码",
        "type":"JDBC",
        "url":"jdbc:mysql://192.168.12.12:3306/abc_wms?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",
        "user":"root",
        "weight":0
}

 以slave1为例:vim slave1.datasource.json

搭建开源数据库中间件MyCat2-配置mysql数据库双主双从,数据库,中间件,mycat2

{
        "dbType":"mysql",
        "idleTimeout":60000,
        "initSqls":[],
        "initSqlsGetConnection":true,
        "instanceType":"READ",
        "maxCon":1000,
        "maxConnectTimeout":3000,
        "maxRetryCount":5,
        "minCon":1,
        "name":"slave1",
        "password":"数据库密码",
        "type":"JDBC",
        "url":"jdbc:mysql://192.168.12.14:3306/abc_wms?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",
        "user":"root",
        "weight":0
}

 5).启动mycat2

mycat2命令:

后台启动MyCat:./mycat start
查看启动状态:./mycat status
停止:./mycat stop
重启:./mycat restart
前台启动并在控制台打印日志(ctrl+c停止):./mycat console 

可以先用./mycat console,查看是否有报错信息,后续正式用后台启动mycat。

三、使用mycat2

项目中配置信息,修改为mycat2的服务器地址,用户名和密码,即可使用mycat2,会根据配置的信息自动切换查询和新增的服务器。

以spring-boot的java项目为例,在这里修改为mycat2的连接信息。

搭建开源数据库中间件MyCat2-配置mysql数据库双主双从,数据库,中间件,mycat2

遇到的问题:

本人才疏学浅,没有找到这个问题如何解决,因为此问题,项目可视化大屏数据无法展示,不清楚是什么问题导致的也没有解决方案,因为直接上了正式环境,所以有点影响,结果mycat中间件不适用本项目,弃用了。

搭建开源数据库中间件MyCat2-配置mysql数据库双主双从,数据库,中间件,mycat2文章来源地址https://www.toymoban.com/news/detail-812787.html

到了这里,关于搭建开源数据库中间件MyCat2-配置mysql数据库双主双从的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Jmeter】压测mysql数据库中间件mycat

    目录 背景 环境准备 1、下载Jmeter 2、下载mysql数据库的驱动包 3、要进行测试的数据库 Jmeter配置 1、启动Jmeter图形界面 2、加载mysql驱动包 3、新建一个线程组,然后如下图所示添加 JDBC Connection Configuration 4、配置JDBC Connection Configuration 5、如图所示添加JDBC Request 6、如图所示配置

    2024年02月14日
    浏览(45)
  • ShardingSphere:强大的分布式数据库中间件【图文】

    Sharding-JDBC :它提供了一个轻量级的 Java 框架,在 Java 的 JDBC 层提供额外的服务。使用客户端直连数据库,以 jar 包形式提供服务,无需额外部署和依赖,可理解为增强版的 JDBC 驱动,完全兼容 JDBC 和各种 ORM 框架。Sharding-JDBC主要用于嵌入到应用程序中,使应用程序能够透明地

    2024年04月28日
    浏览(52)
  • Go重写Redis中间件 - Go实现内存数据库

    前面我们实现了一个简单的回发Redis,这里我们要实现一个真正的Redis内核 实现底层Dict数据结构 新建一个datastruct文件夹,放一些我们要用的数据结构,比如Redis的核心起始就是一个map,再新建一个包实现这个map或者叫字典,字典的底层使用的就是map dict.go 写一个Dict接口定义

    2024年02月11日
    浏览(51)
  • 【云原生技术】云计算中的数据库中间件简介

    云计算中的数据库中间件是位于客户端和数据库服务器之间的软件层,提供数据库操作的抽象、管理、优化和扩展功能。这些中间件可以简化数据库的管理,提高性能和安全性,同时使应用程序更容易与数据库进行交互。 主要功能 连接池管理 : 管理数据库连接,提供连接池

    2024年01月22日
    浏览(63)
  • MySQL数据库中间件Mycat介绍及下载安装(教程)

    MyCat是开源的、活跃的、基于Java语言编写的MySQL数据库中间件。可以像使用MySQL一样来使用MyCat,对于开发人员来说根本感觉不到MyCat的存在。 开发人员只需要连接MyCat即可,而具体底层用到几台数据库,每一台数据库服务器里面存储了什么数据,都无需关心。 具体的分库分表

    2024年02月11日
    浏览(54)
  • 数据库访问中间件--springdata-jpa的基本使用

    回顾 示例 JPQL 片段 And findByLastnameAndFirstname … where x.lastname = ?1 and x.firstname = ?2 Or findByLastnameOrFirstname … where x.lastname = ?1 or x.firstname = ?2 Is,Equals findByFirstnameIs,findByFirstnameEquals … where x.firstname = ?1 Between findByStartDateBetween … where x.startDate between ?1 and ?2 LessThan findByAgeLessT

    2024年02月14日
    浏览(46)
  • Springboot整合activiti5,达梦数据库,mybatis中间件

    由于工作流引擎不支持达梦数据库以及国产中间件,所以我们引入的时候会报错,这个时候就需要去改造代码和配置文件。各种文档和资料查找一天,现在对这个问题进行解决了。 1.查看网上的各类教程,手动将源码复制粘贴出来,进行修改。这方面可以自行去查找对应文档

    2024年02月14日
    浏览(40)
  • RocketMQ:一个纯java的开源消息中间件--开发测试环境搭建

    一、简介     RocketMQ的前身是Metaq,当 Metaq 3.0发布时,产品名称改为  RocketMQ     MetaQ2.x版本由于依赖了alibaba公司内部其他系统,对于公司外部用户使用不够友好,推荐使用3.0版本。      项目地址:  https://github.com/alibaba/RocketMQ

    2024年02月11日
    浏览(55)
  • Python数据权限的管理通常涉及到几个关键组件:身份验证,、授权和访问控制。这通常是通过使用数据库、ORM(对象关系映射)框架、API框架和中间件

    在Python中,数据权限的管理通常涉及到几个关键组件:身份验证,、授权和访问控制。这通常是通过使用数据库、ORM(对象关系映射)框架、API框架和中间件等技术来实现的。以下是一些建议的步骤和工具,用于在Python项目中实施数据权限管理: 用户身份验证: 使用如Djan

    2024年04月26日
    浏览(45)
  • 十万字图文详解mysql、redis、kafka、elasticsearch(ES)多源异构不同种类数据库集成、数据共享、数据同步、不同中间件技术实现与方案,如何构建数据仓库、数据湖、数仓一体化?

    数据库大数据量、高并发、高可用解决方案,十万字图文详解mysql、redis、kafka、elasticsearch(ES)多源异构不同种类数据库集成、数据共享、数据同步、不同中间件技术实现与方案,如何构建数据仓库、数据湖、数仓一体化?Delta Lake、Apache Hudi和Apache Iceberg数仓一体化技术架构

    2024年02月07日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包