mysql mycat one_Mycat 整合 MySQL 8.x 踩坑实践

Mycat 目前还未全面支持MySQL 8以上的版本,可能会导致一些问题,例如Mycat连接MySQL 8时可能会报密码错误,因为新版的密码加密方式与旧版不一样。还有就是时区问题,新版的连接方式需要增加时区参数。除此之外,可能还会有一些其他问题。因此,我们需要更改Mycat的一些配置,让其能正常连接MySQL 8.x。

下载8.x版本的驱动

首先需要下载8.x版本的驱动,Mycat 默认的MySQL驱动版本为5.x。到maven中央仓库上复制8.x驱动jar包的下载地址,然后到Linux上使用wget命令进行下载:

[root@txy-server ~]# cd /usr/local/src

[root@txy-server /usr/local/src]# wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.18/mysql-connector-java-8.0.18.jar

将驱动包移动到mycat的lib目录下,并删除原本的5.x驱动包:

[root@txy-server /usr/local/src]# mv mysql-connector-java-8.0.18.jar /usr/local/mycat/lib/

[root@txy-server /usr/local/src]# rm -rf /usr/local/mycat/lib/mysql-connector-java-5.1.35.jar

接着使用chmod命令设置该驱动包的权限:

[root@txy-server /usr/local/mycat]# chmod 777 lib/mysql-connector-java-8.0.18.jar

修改 schema.xml

修改位于conf目录下的schema.xml配置文件,目的是更改Mycat连接MySQL的方式:

[root@txy-server /usr/local/mycat]# vim conf/schema.xml

修改dataHost标签中的dbDriver属性为jdbc,以及修改 writeHost 标签中的url属性:

writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1" slaveThreshold="100">

select user()

url="jdbc:mysql://192.168.130.28:3306?useSSL=false&serverTimezone=GMT%2B8"

user="root"

password="123456">

修改 server.xml

修改位于conf目录下的server.xml配置文件:

[root@txy-server /usr/local/mycat]# vim conf/server.xml

将useHandshakeV10设置为1,如果没该标签则添加即可:

1

...

重启 Mycat 并测试

重启 Mycat:

[root@txy-server /usr/local/mycat]# mycat stop

Stopping Mycat-server...

Stopped Mycat-server.

[root@txy-server /usr/local/mycat]# mycat start

Starting Mycat-server...

[root@txy-server /usr/local/mycat]#

在测试能否正常连接 Mycat 时又遇到了另一个问题,使用MySQL 8.x的客户端工具连接 Mycat 报了个密码错误:

[root@txy-server ~]# mysql -uroot -p -P9066 -h127.0.0.1

Enter password:

ERROR 1045 (HY000): Access denied for user 'root', because password is error

[root@txy-server ~]#

同样,这也是因为MySQL 8以上的版本与之前版本的密码加密方式不一样。而 Mycat 目前还是只支持5.x版本的加密方式,所以使用8以上版本的MySQL客户端工具连接Mycat时就会报密码错误。

解决方式主要有两种,一是指定mysql客户端连接时的加密方式。如下示例:

[root@txy-server ~]# mysql -uroot -p -P9066 -h127.0.0.1 --default-auth=mysql_native_password

二是采用5.x版本的MySQL客户端工具来连接 Mycat。如下示例:

[root@txy-server /usr/local/mysql-5.7.28]# bin/mysql -uroot -p -P9066 -h127.0.0.1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值