Mycat连接MySQL 8的时候所需要注意哪些事项?你知道几项

系统 Windows 新闻
MyCat是一个基于MySQl协议的开源的分布式中间件,其核心是分库分表。但是目前MyCat仍主要面对MySQL 5.5, 5.6, 5.7版,对最新的MySQL 8尚未完全支持,需要用户对MySQL 8和MyCat的配置进行一系列的修改。

 一、问题

MyCat是一个基于MySQl协议的开源的分布式中间件,其核心是分库分表。

[[272114]]

但是目前MyCat仍主要面对MySQL 5.5, 5.6, 5.7版,对最新的MySQL 8尚未完全支持,需要用户对MySQL 8和MyCat的配置进行一系列的修改。

根据自己的测试结果,对这些修改进行简要的总结。

二、关于MySql 8

主要是修改Mysql配置文件,在Windows平台是my.ini,在linux平台是my.cnf:

  • 修改缺省加密方式:在安装完MySQL 8后,需将缺省的加密方式修改为mysql_native_password,以保持与5.x版本兼容。
  • 如果是在Linux平台,在首次启动前设置lower_case_table_names = 1(表名大小写不敏感),注意一旦数据库中已有数据,再如此设置会导致启动mysql失败。
  • 为防止出现字符集不匹配,最好也显式设置字符集(可选)。

以下是本人使用的my.cnf:

[mysqld]

...

default-authentication-plugin=mysql_native_password

lower_case_table_names=1

character-set-server=utf8

[mysql]

default-character-set=utf8

三、关于MyCat

主要涉及三个方面。

  • 登录逻辑库的方式

Mycat登录逻辑库的传统方式是:mysql -uroot -p -h127.0.0.1 -P8066 -DTESTDB

但对于MySql 8,会报密码错误方式,这是由于Mysql 8的缺省加密方式已经改为caching_sha2_password,而MyCat对此尚不支持。为此,需加上--default_auth=mysql_native_pasowrd选项:

mysql -uroot -p -h127.0.0.1 -P8066 -DTESTDB --default_auth=mysql_native_pasowrd

这样才能成功登录逻辑库。

  • 替换自带的JDBC驱动jar

MyCat自带的JDBC驱动jar还是5.1.x版的,若使用JDBC连接MySql 8,会报错“Java.sql.SQLException: Unknown system variable 'query_cache_size'”。必须用8.0.x版的JDBC驱动jar代替才行,本人使用的下载地址是:

http://central.maven.org/maven2/mysql/mysql-connector-java/8.0.11/ mysql-connector-java-8.0.11.jar

  • 修改jdbc时的url

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

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

四、其它

前一个实验里,Mycat用JDBC连接PostgreSQL等数据库时,发现无法实现二级子表的自动分片。但对于MySql 8,二级子表的自动分片正常,没有问题。

责任编辑:华轩 来源: 编辑小猿
相关推荐

2015-08-19 15:33:41

布线技术

2011-05-26 17:37:11

Ajax

2010-11-24 14:12:18

MySQL创建有外键的

2022-06-30 13:41:44

SQL 语句group by

2010-04-21 10:04:33

Oracle移植

2020-09-28 11:14:57

线程数据语言

2010-04-22 12:07:37

Oracle Spat

2023-12-13 15:20:45

数据中心云计算人工智能

2014-07-31 17:13:50

编码程序员

2011-07-21 15:40:24

iPhone 内存管理 对象

2009-08-28 09:26:35

C#连接Access

2023-07-27 18:39:20

低代码开发编码

2011-08-08 15:06:36

布线综合布线智能家居

2010-12-31 09:14:36

MongoDB

2024-01-02 12:59:00

智能家居

2010-10-12 15:04:52

MySql索引

2010-08-31 14:33:46

DB2游标

2009-06-10 15:36:25

ubuntu netb开发过程

2010-05-26 17:05:13

SVN提交

2023-08-25 10:49:37

数据中心服务器
点赞
收藏

51CTO技术栈公众号