2018年做视频网站,宁波住房与城乡建设部网站,网站建设和维护的职责,网站开发公司官网mycat2官网#xff1a;MyCat2
前言#xff1a;mycat2下载地址无法访问#xff0c;不知道是不是被DNS污染了#xff0c;还是需要搭梯子访问#xff0c;所以我只能找到1.21的版本进行安装。搭建mycat2的前提是搭建数据库主从复制。
架构#xff1a;双主双从 配置#xf…mycat2官网MyCat2
前言mycat2下载地址无法访问不知道是不是被DNS污染了还是需要搭梯子访问所以我只能找到1.21的版本进行安装。搭建mycat2的前提是搭建数据库主从复制。
架构双主双从 配置3台服务器4台数据库其中2台服务器为数据库各装主从配置1台服务器为数据库中间件。
版本信息mycat1.21mysql8.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 --restartalways --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 seccompunconfined -e MYSQL_ROOT_PASSWORD123456 mysql:8.0.16 --lower_case_table_names1 2、配置mysql数据库需要注意的是服务器id是唯一的第一台可以设置5第二台6以此类推。
创建配置文件vim /home/apps/mysql-master/conf/my.cnf[mysqld]
# 服务器唯一id默认值1
server-id6
# 设置日志格式默认值ROW
binlog_formatSTATEMENT
# 二进制日志名默认binlog
# log-binbinlog
# 设置需要复制的数据库默认复制全部数据库
#binlog-do-dbmytestdb
# 设置不需要复制的数据库
binlog-ignore-dbmysql
binlog-ignore-dbinfomation_schema
binlog-ignore-dbsys
binlog-ignore-dbperformance_schema
# 跳过缓存解决连接数据库缓慢
skip-host-cache
skip-name-resolve
在主从配置完成前请不要操作数据库写入否则日志会更新此时同步数据会不全当然也可以用工具进行同步。
3、配置主从
先配置master1和slave1之间的主从同步。在master1中查看日志名和postition 在slave1中修改好master1的ip、用户名、密码、端口等分别执行以下语句配置后开启同步查看显示同步状态。
-- 在主机master1中查询状态
SHOW MASTER STATUS;slave1执行
-- 配置主从同步
CHANGE MASTER TO MASTER_HOST192.168.16.71, MASTER_USERroot,MASTER_PASSWORD数据库密码, MASTER_PORT3306,MASTER_LOG_FILEbinlog.000005,MASTER_LOG_POS155;
-- 开启主从同步
START SLAVE;
-- 显示同步状态
SHOW SLAVE STATUS
-- 停止主从同步
stop slave;
-- 重置同步配置在从机上执行。功能说明用于删除SLAVE数据库的relaylog日志文件并重新启用新的relaylog文件。
reset slave all; 配置完成后查看同步状态IO和SQL状态均为YES表示同步成功。显示为NO表示失败下方有失败原因。 4、配置主-主之间的同步
其实两台主机之间的同步和主从同步配置一样把master1当做master2的从机把master2当做master1的从机。
例如在master1中配置将ip换成master2的ip信息相当于master2是master1的从机。以此配置master2。
master1执行
-- 配置主从同步
CHANGE MASTER TO MASTER_HOST192.168.16.72, MASTER_USERroot,MASTER_PASSWORD数据库密码, MASTER_PORT3306,MASTER_LOG_FILEbinlog.000005,MASTER_LOG_POS155;
-- 开启主从同步
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.Userroot; 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 3、配置mycat2 配置逻辑梳理 a、先做基本默认结构连通mycat2的8066端口可以访问成功 b、配置schemas逻辑库 c、配置clusters集群 d、配置datasources数据源。 mycat2命令 后台启动MyCat./mycat start 查看启动状态./mycat status 停止./mycat stop 重启./mycat restart 前台启动并在控制台打印日志ctrlc停止./mycat console 目录结构如下 1).配置数据源datasources
cd /usr/local/mycat/conf/datasources
vim prototypeDs.datasource.json 然后进入bin目录启动mycat2./mycat console
本地网络主机使用数据库连接软件如navicat地址是中间件服务器地址端口为8066连接成功即可创建成功。 2).创建逻辑库schemas
连接到8066端口mysql数据库创建项目所需要的数据库这个是逻辑库的名称创建的名称和实际数据库名称一样即可。其他条件不用加例如特定字符集。 CREATE DATABASE database_name; 在此路径下schemas就可以看到以数据库名自动建立的逻辑库json文件。 编辑新增的逻辑库json文件
新增targetName:wms,
这是集群名称后面会和cluster对应注意这是json文件增加一行后面要加逗号, 3).创建clusters集群
回到conf文件目录进入clusters文件夹。复制默认集群配置文件prototype.cluster.json为新名称的集群 cp prototype.cluster.json wms.cluster.json 编辑文件wms.cluster.json其中masters和replicas是配置主从数据库服务器的名称和后续数据源配置统一。注意故障自动切换需要搭配timer时间配置否则无效。 {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开头。 依次编辑数据源文件 以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?useUnicodetrueserverTimezoneAsia/ShanghaicharacterEncodingUTF-8,user:root,weight:0
} 以slave1为例vim slave1.datasource.json {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?useUnicodetrueserverTimezoneAsia/ShanghaicharacterEncodingUTF-8,user:root,weight:0
} 5).启动mycat2 mycat2命令 后台启动MyCat./mycat start 查看启动状态./mycat status 停止./mycat stop 重启./mycat restart 前台启动并在控制台打印日志ctrlc停止./mycat console 可以先用./mycat console查看是否有报错信息后续正式用后台启动mycat。
三、使用mycat2
项目中配置信息修改为mycat2的服务器地址用户名和密码即可使用mycat2会根据配置的信息自动切换查询和新增的服务器。
以spring-boot的java项目为例在这里修改为mycat2的连接信息。 遇到的问题
本人才疏学浅没有找到这个问题如何解决因为此问题项目可视化大屏数据无法展示不清楚是什么问题导致的也没有解决方案因为直接上了正式环境所以有点影响结果mycat中间件不适用本项目弃用了。