一、下载与安装
概要说明: 本次测试使用两个mysql数据库 和 一个 mycat2
mysql的安装下载
mycat2安装的下载:
链接: https://pan.baidu.com/s/1YsS50KKXkE6lzbuOgSu8mA?pwd=3hgq 提取码: 3hgq
二、安装方式
解压后,将mycat2-1.21-release-jar-with-dependencies.jar 文件复制到 mycat 目录的lib目录下。
安装:进入mycat2的bin目录(D:\Program Files\mycat2\mycat2\bin)
>>mycat.bat install //安装服务
wrapper | Mycat-server installed.
>>mycat.bat start //启动服务
三、文件配置
编辑配置文件,配置数据库链接:
mycat2\conf\datasources\prototypeDs.datasource.json
{
"dbType":"mysql",
"idleTimeout":60000,
"initSqls":[],
"initSqlsGetConnection":true,
"instanceType":"READ_WRITE",
"maxCon":1000,
"maxConnectTimeout":3000,
"maxRetryCount":5,
"minCon":1,
"name":"prototypeDs",
"password":"123qwe,.",
"type":"JDBC",
"url":"jdbc:mysql://localhost:3306/mysql?useUnicode=true&serverTimezone=Asia/Shanghai&characterEncoding=UTF-8",
"user":"root",
"weight":0
}
注意:url 是链接mysql的链接地址,如果当前的 user 账号,没有权限访问 mysql 数据库,能会导致链接失败:如果链接失败,去查看 mycat2的日志文件:
D:\Program Files\mycat2\mycat2\logs
编辑mycat的登录账号:
D:\Program Files\mycat2\mycat2\conf\users
{
"dialect":"mysql",
"ip":null,
"password":"123456",
"transactionType":"xa",
"username":"root"
}
四、启动mycat2
完成后:启动mycat2 服务:进入bin目录 cmd 输入如下命令。
mycat start
五、实践效果。
项目启动后,打开navicat工具。分表链接 mycat2 服务和 mysql
链接 mycat: 账号就是刚才 users 目录配置的账号密码。
链接 mysql数据库:prototypeDs.datasource 刚才配置的数据。
对mycat2 的所有操作都会同步到 mysql。
对mysql 的操作不会同步到 mycat2。
常见错误:
1129 - Host '192.168.227.147' is blocked because of many connection errors;unblock with 'mysqladmin flush-hosts
问题原因:链接次数过多,导致。
解决办法:重启一下mysql就好。
2059 - Authentication plugin 'caching_sha2_password' cannot be loaded:
问题原因: 你的navcat或者链接客户端不支持 'caching_sha2_password'插件
解决方案: 方案一 修改mysql密码验证方式为老版本的 mysql_native_password 方案二 给 navicat 安装 caching_sha2_password插件。
方案一:ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password By 'password'; --冒号部分替换成自己的参数
如果报错:Plugin 'mysql_native_password' is not loaded
就需要开启mysql_native_password 到:C:\ProgramData\MySQL\MySQL Server 8.4\mysql.ini 添加 mysql_native_password=ON
然后重启mysql,就可以修改了。
1、修改密码校验方式: 如果你的root的host字段不是% 可能是localhost 可以在mysql.user表中修改localhost 为 %
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password By '123123';
2、在mysql中创建一个mycat专用的账号"mycat" 并添加权限
create USER 'mycat'@'%' IDENTIFIED BY '123123'
-- 给mycat账户添加权限
GRANT XA_RECOVER_ADMIN ON *.* TO 'root'@'%';
-- 视情况给mycat赋予权限:
GRANT ALL PRIVILEGES ON *.* TO 'mycat'@'%';
flush privileges