Mycat连接MySql8踩坑记录

1. ERROR 1045 (HY000): Access denied for user ‘root’, because password is error

启动mycat

D:\Mycat-server-1.6.7.5-release-20200410174409-win\mycat\bin>mycat start
wrapper  | Starting the Mycat-server service...
wrapper  | Mycat-server started.

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

F:\Java\MySQL8\bin>mysql -uroot -h127.0.0.1 -P8066 -p
Enter password: ****
ERROR 1045 (HY000): Access denied for user 'root', because password is error

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

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

F:\Java\MySQL8\bin>mysql -uroot -p -P8066 -h127.0.0.1 --default-auth=mysql_native_password

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

F:\Java\MySQL5\bin>mysql -uroot -p -P8066 -h227.0.0.1

2. Java.sql.SQLException: Unknown system variable ‘query_cache_size’

MyCat自带的JDBC驱动jar还是5.1.x版的,若使用JDBC连接MySql 8,会报错,必须用8.0.x版的JDBC驱动jar代替才行。

3.ERROR 1105 (HY000): backend connect: java.lang.IllegalArgumentException: Invalid DataSource:0

如果dataHost的driverType为JDBC,则还需要修改url,增加useSSL=false和serverTimezone=UTC选项,某些情况下还需加上characterEncoding=utf8选项(可选),例如:

url=“jdbc:mysql://192.168.64.187:3306?useSSL=false&serverTimezone=UTC& characterEncoding=utf8”

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值