MyCat 部署读写分离-分库,未分表
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MyCat 部署读写分离-分库,未分表相关的知识,希望对你有一定的参考价值。
mysql主从复制不在叙述,以下是 mycat 的部署过程:
从GitHub上下载mycat ,此本版是:Mycat-server-1.6.7.5
1· 解压 下载好的 tar 包:
tar -xf Mycat-server-1.6.7.5-release-20200422133810-linux.tar.gz
cd mycat
cp schema.xml schema.xml.bak
cp server.xml server.xml.bak
vim schema.xml //编辑配置文件,指定数据库、读写分离参数
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="adshield" checkSQLschema="false" sqlMaxLimit="100" dataNode="node1"/>
<schema name="adshield_res_video" checkSQLschema="false" sqlMaxLimit="100" dataNode="node2"/>
<schema name="database1" checkSQLschema="false" sqlMaxLimit="100" dataNode="node3"/>
<schema name="konga" checkSQLschema="false" sqlMaxLimit="100" dataNode="node4"/>
<schema name="nacos" checkSQLschema="false" sqlMaxLimit="100" dataNode="node5"/>
<schema name="oauth2" checkSQLschema="false" sqlMaxLimit="100" dataNode="node6"/>
<schema name="videodata" checkSQLschema="false" sqlMaxLimit="100" dataNode="node7"/>
<schema name="videodata_dev" checkSQLschema="false" sqlMaxLimit="100" dataNode="node8"/> //dataNode 这里的值需要和下面的值对应
<schema name="viip_qa" checkSQLschema="false" sqlMaxLimit="100" dataNode="node9"/>
<schema name="test-lyh" checkSQLschema="false" sqlMaxLimit="100" dataNode="node10"/> // schema name 是mycat 的逻辑名称,配置时最好和真实库是一样的,这样更直观。
<dataNode name="node1" dataHost="192.168.64.12" database="adshield"/> // dataNode name 是你真实数据库的名称
<dataNode name="node2" dataHost="192.168.64.12" database="adshield_res_video"/>
<dataNode name="node3" dataHost="192.168.64.12" database="database1"/>
<dataNode name="node4" dataHost="192.168.64.12" database="konga"/>
<dataNode name="node5" dataHost="192.168.64.12" database="nacos"/>
<dataNode name="node6" dataHost="192.168.64.12" database="oauth2"/>
<dataNode name="node7" dataHost="192.168.64.12" database="videodata"/>
<dataNode name="node8" dataHost="192.168.64.12" database="videodata_dev"/>
<dataNode name="node9" dataHost="192.168.64.12" database="viip_qa"/>
<dataNode name="node10" dataHost="192.168.64.12" database="test-lyh"/>
<dataHost name="192.168.64.12" maxCon="1000" minCon="50" balance="1" writeType="1" dbType="mysql" dbDriver="native" switchType="0" slaveThreshold="100"> // balance 值为 1 表示读写分离 还可以表示 0、1、2、3 具体参考官网解释
<heartbeat>select user()</heartbeat>
<writeHost host="192.168.64.12" url="192.168.64.12:3326" user="test" password="test123">
<readHost host="192.168.64.14" url="192.168.64.14:3306" user="test" password="test123"/> //指定主、从的地址、用户、密码
</writeHost>
</dataHost>
</mycat:schema>
vim server.xml //修改mycat 用户等配置 ,配置文件太长,贴出修改部分
<user name="root" defaultAccount="true"> //连接mycat的用户名
<property name="password">City@#$123</property> //连接mycat的密码
<property name="schemas">adshield,adshield_order,adshield_taxi,mysql,nacos,pb_cms_base,performance_schema,sys,test2,information_schema</property> //mycat 需要连接的库,这里需要和上个配置文件<schema.xml> 中 schema name 的值相对应。下面参数的配置都一样。
<property name="defaultSchema">adshield,adshield_order,adshield_taxi,mysql,nacos,pb_cms_base,performance_schema,sys,test2,information_schema</property>
cd /usr/local/mycat
mkdir logs
chmod 777 logs
vim /etc/profile //配置环境变量
export MYCAT_HOME=/usr/local/mycat
export PATH=$MYCAT_HOME/bin:$PATH
source /etc/profile
mycat start // 启动时会产生日志,可以观看日志是否启动成功
MyCAT Server startup successfully. see logs in logs/mycat.log 日志产出 说明启动成功
因公司需求,需要将主库和mycat 的端口互换,这样可以避免程序再次修改连接数据库的操作,所以如果有需求,请修改以下配置文件:
vim server.xml
<property name="serverPort">3306</property> <property name="managerPort">9066</property> //需要将他取消注释,修改端口,重启mycat
以上是关于MyCat 部署读写分离-分库,未分表的主要内容,如果未能解决你的问题,请参考以下文章
docker安装mycat并实现mysql读写分离和分库分表
MySQL+MyCat分库分表 读写分离配置MySQL+MyCat分库分表 读写分离配置
MyCat 读写分离 数据库分库分表 中间件 安装部署,及简单使用