文章目录
0 mysql主从复制,读写分离作为前提
一般用mycat都是先搭建MySQL主从复制,下面有教程
用Ubuntu Docker搭建MySQL主从复制
1. win10安装mycat
1.1 window下载地址
1.2 设置环境变量
环境变量里面的系统环境变量path
里面添加mycat 的bin
所在的目录,比如我的是:D:\Soft\mycat\bin
1.3修改schema.xml
把这一部分代码按照我的这样配置,主要是:
- MySQL地址和端口号设置成你的
- 只保留一个写的数据库
hostM1
,把hostS2 、hostS1 、hostM2
都注释掉 - 数据库的用户名、密码换成你自己的,我的是root和123456
<dataNode name="dn1" dataHost="localhost1" database="db1" />
<dataNode name="dn2" dataHost="localhost1" database="db2" />
<dataNode name="dn3" dataHost="localhost1" database="db3" />
<!--<dataNode name="dn4" dataHost="sequoiadb1" database="SAMPLE" />
<dataNode name="jdbc_dn1" dataHost="jdbchost" database="db1" />
<dataNode name="jdbc_dn2" dataHost="jdbchost" database="db2" />
<dataNode name="jdbc_dn3" dataHost="jdbchost" database="db3" /> -->
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM1" url="localhost:3306" user="root"
password="123456">
<!-- can have multi read hosts -->
<!-- <readHost host="hostS2" url="localhost:3306" user="root" password="xxx" />-->
</writeHost>
<!-- <writeHost host="hostS1" url="localhost:3316" user="root"
password="123456" />-->
<!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->
</dataHost>
1.4 修改server.xml
注意这里要改的是:用户名和密码换成自己的
<user name="root">
<property name="password">123456</property>
<property name="schemas">TESTDB</property>
<!-- 表级 DML 权限设置 -->
<!--
<privileges check="false">
<schema name="TESTDB" dml="0110" >
<table name="tb01" dml="0000"></table>
<table name="tb02" dml="1111"></table>
</schema>
</privileges>
-->
</user>
1.5 修改字符集index_to_charset.properties
修改mycat字符集配置文件index_to_charset.properties
,添加255=utf8mb4
,重启服务。
这一步很重要,不然后面会报错的 Unknown charsetIndex:255
2. 启动
进入到mycat的Bin目录,用管理员的CMD打开
2.1 顺序执行下面的代码
//安装
./mycat.bat install
//启动
./mycat.bat start
//查看状态
./mycat.bat status
//关闭
./mycat.bat stop
//重启
./mycat.bat restart
这是我的具体的命令
PS C:\WINDOWS\system32> d:
PS D:\> cd .\Soft\mycat\bin\
PS D:\Soft\mycat\bin> ./mycat.bat install
wrapper | Mycat-server installed.
PS D:\Soft\mycat\bin> ./mycat.bat start
wrapper | Starting the Mycat-server service...
wrapper | Waiting to start...
wrapper | Waiting to start...
wrapper | Mycat-server started.
PS D:\Soft\mycat\bin> .\mycat.bat status
wrapper | The Mycat-server Service is installed.
wrapper | Start Type: Automatic
wrapper | Interactive: No
wrapper | Running: Yes
PS D:\Soft\mycat\bin> .\mycat.bat stop
wrapper | Stopping the Mycat-server service...
wrapper | Mycat-server stopped.
PS D:\Soft\mycat\bin>
3. 测试
3.1 测试连接到mycat,端口默认是8066
用CMD命令行启动mysql -uroot -p123456 -P8066 -h127.0.0.1
好吧我的连接不上,我换成用navcat连接就能连接上,不知道为啥,如图
MyCAT 自身有类似其他数据库的管理监控方式,可以通过Mysql 命令行(即进入mysql的bin目录下执行下面的登录命令),登录管理端口(9066)执行相应的SQL 进行管理,也可以通过jdbc 的方式进行远程连接管理。
登录:目前mycat 有两个端口,8066 数据端口,9066 管理端口,命令行的登陆是通过9066 管理端口来操作,登录方式类似于mysql 的服务端登陆。
注意这个密码和server.xml
和schema.xml
里面的要一致</