当前位置: 首页 > 科技观察

Mycat连接MySQL8需要注意什么?你知道几个

时间:2023-03-12 00:08:03 科技观察

1.问题MyCat是一个基于MySQl协议的开源分布式中间件,其核心是分库分表。但目前MyCat仍主要支持MySQL5.5、5.6、5.7版本,并未完全支持最新的MySQL8,需要用户对MySQL8和MyCat的配置进行一系列修改。根据自己的测试结果,对这些修改做一个简单的总结。2、关于MySql8,主要是修改Mysql配置文件,Windows平台是my.ini,Linux平台是my.cnf:修改默认加密方式:安装MySQL8后,需要修改默认加密方法为mysql_native_password以保持与5.x版本的兼容性。如果是Linux平台,第一次启动前设置lower_case_table_names=1(表名不区分大小写)。注意一旦数据库中有数据,这样设置会导致mysql无法启动。为防止字符集不匹配,最好也显式设置字符集(可选)。下面是我使用的my.cnf:[mysqld]...default-authentication-plugin=mysql_native_passwordlower_case_table_names=1character-set-server=utf8[mysql]default-character-set=utf83.MyCat主要涉及三个方面。登录逻辑库的方式Mycat传统登录逻辑库的方式是:mysql-uroot-p-h127.0.0.1-P8066-DTESTDB但是对于MySql8,会报错密码,就是由于Mysql8的默认加密方式已经改为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连接MySql8,会报错“Java.sql.SQLException:Unknownsystemvariable'query_cache_size'”。必须改用JDBC驱动程序jar的8.0.x版本。我使用的下载地址是:http://central.maven.org/maven2/mysql/mysql-connector-java/8.0.11/mysql-connector-java-8.0.11.jar修改jdbc时的url如果driverTypedataHost为JDBC,还需要修改url,添加useSSL=false和serverTimezone=UTC选项,某些情况下还需要添加characterEncoding=utf8选项(可选),例如:url="jdbc:mysql://192.168.64.187:3306?useSSL=false&serverTimezone=UTC&characterEncoding=utf8"4.其他在之前的实验中,Mycat使用JDBC连接PostgreSQL等数据库时,发现second-levelchild自动分表。但是对于MySql8,二级分表的自动分表是正常的,没有问题。

最新推荐
猜你喜欢