码迷,mamicode.com
首页 > 其他好文 > 详细

MyCat 部署读写分离-分库,未分表

时间:2020-07-08 11:42:20      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:端口   mysql主从   usr   mkdir   form   hold   doctype   etc   database   

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 部署读写分离-分库,未分表

标签:端口   mysql主从   usr   mkdir   form   hold   doctype   etc   database   

原文地址:https://blog.51cto.com/13746824/2509309

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!