安装环境
系统:centos7.0
mycat : 1.6
mysql:8.0
mycat服务器:192.168.·37.151
mysql:192.168.137.128(主) 192.168.137.129(从)
jdk:1.8
安装JDK
数据库安装
主从配置
安装mycat
#搜索是否安装
find / -name mycat
#下载mycat
wget http://dl.mycat.org.cn/1.6.7.4/Mycat-server-1.6.7.4-release/Mycat-server-1.6.7.4-release-20200105164103-linux.tar.gz
#解压
tar -zxvf Mycat-server-1.6.7.4-release-20200105164103-linux
#拷贝
cp mycat /usr/local/mycat
cd /usr/local/mycat/conf
查看配置文件
schema.xml
<![CDATA[
定义逻辑库,表,分片节点等内容
]]>
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<![CDATA[
name 逻辑数据库名,与server.xml中的schema对应
checkSQLschema 数据库前缀相关设置,建议看文档,这里暂时设为folse
sqlMaxLimit select 时默认的limit,避免查询全表
randomDataNode 指定一个节点而不是随机发送
]]>
<schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100" randomDataNode="dn1">
</schema>
<![CDATA[
name 节点名,与table中dataNode对应
datahost 物理数据库名,与datahost中name对应
database 物理数据库中数据库名
]]>
<dataNode name="dn1" dataHost="localhost1" database="db1" />
<![CDATA[
name 物理数据库名,与dataNode中dataHost对应
balance 均衡负载的方式
writeType 写入方式
dbType 数据库类型。
]]>
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<!--心跳检测-->
<heartbeat>select user()</heartbeat>
<!--写入库-->
<writeHost host="hostM1" url="192.168.137.128:3306" user="root" password="123456">
<!--读库-->
<readHost host="hostS2" url="192.168.137.129:3306" user="root" password="123456" />
</writeHost>
</dataHost>
</mycat:schema>
rule.xml
<![CDATA[
定义分片规则
rule.xml
]]>
server.xml
<![CDATA[
定义用户一级系统相关变量,端口等
添加配置:相当于建立了一个叫做mycat用户,对应密码为mycat,该用户管理了mycats这个逻辑库。当然了,也可以为用户添加管理多个逻辑库,以,(英文逗号)分隔开即可
user 用户配置节点
name 登录的用户名,也就是连接Mycat的用户名
password 登录的密码,也就是连接Mycat的密码
schemas 数据库名,这里会和schema.xml中的配置关联,多个用逗号分开,例如需要这个用户需要管理两个数据库db1,db2,则配置db1,dbs
]]>
<--用户名称和密码-->
<user name="root">
<property name="password">root</property>
<property name="schemas">TESTDB</property>
<property name="readOnly">false</property>
</user>
启动
#控制台启动
./mycat console
#后台启动
./mycat start
# 停止
./mycat stop
#重启
./mycat restart
开启端口
#开启8806
firewall-cmd --add-port=8806/tcp --permanent #数据端口
firewall-cmd --add-port=9906/tcp --permanent #管理端口
#重新启动
systemctl restart firewalld.service
测试
#mysql8 更改了加密caching_sha2_password
mysql -h192.168.137.151 -P8066 -uroot -p123456 --default-auth=mysql_native_password
或者手动修改替换自带的JDBC驱动jar
.. 下载
mysql-connector-java-8.0.11.jar
url="jdbc:mysql://192.168.64.187:3306?useSSL=false&serverTimezone=UTC& characterEncoding=utf8"
.. 尽量要去替换可能会影响navicat 或者其他连接工具