Mycat Mysql8.0配置详情

首先,安装Msyql8.0的时间要使用Mysql5.0的验证方式,

其实也就是my.ini中采用这种密码验证方式,至于如何设置,这里就不说了。度娘可以解决你的问题。default_authentication_plugin=mysql_native_password

下面我会附上下载地址,其中schema.xml中 checkSQLschema 我在源码中忘记修改了。

checkSQLschema="true" sqlMaxLimit="100">
checkSQLschema="true"  
checkSQLschema 这个必须修改成true

=======================================

源码中pom.xml中已经修改了MYSQL8.0的驱动

注意使用mysql8.0.12的一些问题
1.schema.xml中的下面的配置:

dbDriver="jdbc" switchType="1" slaveThreshold="100">
      select user()
      url="jdbc:mysql://192.168.0.103:3306?useSSL=false&serverTimezone=UTC" user="root" password="123456">
         url="jdbc:mysql://192.168.0.103:3306?useSSL=false&serverTimezone=UTC" user="root" password="123456"/>
      
      url="jdbc:mysql://192.168.0.103:3306?useSSL=false&serverTimezone=UTC" user="root" password="123456"/>
   

这两个地方比较重要,采用JDBC连接,当然可以采用 dbDriver="native"方式,不过我建议用JDBC就可以了。
URL :jdbc:mysql://192.168.0.103:3306?useSSL=false&serverTimezone=UTC
dbDriver="jdbc"
2.源码中细节修改
SystemConfig.java 中增加8.0
      public static final String[] MySQLVersions = {"5.5", "5.6", "5.7", "8.0"};
      private int useHandshakeV10 = 1;修改为1,不然你用JDBC连接MYCAT的时间连接不上


3.测试,我用的是JdbcTemplate来测试的,当然你可以自己用JDBC连接方式来测试。

String driver = "com.mysql.cj.jdbc.Driver";//非常重要
String url = "jdbc:mysql://localhost:8066/monthdatadb?useSSL=false&serverTimezone=UTC";
String username = "root";
String password = "123456";

DriverManagerDataSource ds = new DriverManagerDataSource();
ds.setDriverClassName(driver);
ds.setUrl(url);
ds.setUsername(username);
ds.setPassword(password);
JdbcTemplate jdbcTemplate = new JdbcTemplate();
jdbcTemplate.setDataSource(ds);
List list = jdbcTemplate.queryForList("select * from teacher ");

System.out.println(list.size());

 

特别重要的是有一点,你必须拿一定的时间去研究过Mycat,2天左右应该足够,多去查下资料,如果你没研究过,很多配置你根本不了解。

 

我做了这样一个功能,最后几个月数据自动选择数据源。因为我们数据量比较大,他这个按照月份分表的方式会有一个问题,你需要经常去自己维护mycat。超过了数据源就找不到dn,这样比较麻烦,我这边会按照月份做拆分。最后动态选择数据源,如果有需要的,给我留言,我发出来,这个功能是没包含在该源码中的。

源码下载地址 https://download.csdn.net/download/yangshuai518/10595358

你可能感兴趣的:(mycat)