CentOS7.8-MyCat使用MySQL8.0数据库报错

报错如下

#####mycat连接MySQL8.0数据库启动报错,报错如下:
org.xml.sax.SAXParseException; lineNumber: 355; columnNumber: 67; The reference to entity "serverTimezone" must end with the ';' delimiter.
####schema.xml中datahost配置如下

schema.xml配置文件如下

<dataNode name="dn1" dataHost="db1" database="invoice"/>
    <dataNode name="dn2" dataHost="db2" database="invoice"/>   
    <dataNode name="dx1" dataHost="dxdb1" database="sales_order"/>
    <dataNode name="dx2" dataHost="dxdb2" database="sales_order"/>
​
    <dataHost name="db1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1"  slaveThreshold="100">
        <heartbeat>select user()</heartbeat>
        <writeHost host="mycat-1.itax.local" 
                   url="jdbc:mysql://10.6.8.48:36000?useSSL=false&amp;allowPublicKeyRetrieval=true&amp;&ampserverTimezone=GMT%2B8;" 
                   user="sales_manager" 
                   password="ueHjqtam%zB^WqW5">
        </writeHost>
    </dataHost>
​
​
    <dataHost name="db2" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1" slaveThreshold="100">
        <heartbeat>select user()</heartbeat>
        <writeHost host="mycat-2.itax.local" 
                   url="jdbc:mysql://10.6.8.49:36000?useSSL=false&amp;allowPublicKeyRetrieval=true&amp;&ampserverTimezone=GMT%2B8;"
                   user="sales_manager" 
                   password="ueHjqtam%zB^WqW5">
        </writeHost>
    </dataHost>
    <dataHost name="dxdb1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1" slaveThreshold="100">
        <heartbeat>select user()</heartbeat>
        <writeHost host="mycat-1.itax.local" 
                   url="jdbc:mysql://10.6.8.48:36000?useSSL=false&amp;allowPublicKeyRetrieval=true&amp;&ampserverTimezone=GMT%2B8;" 
                   user="sales_manager" 
                   password="ueHjqtam%zB^WqW5">
        </writeHost>
    </dataHost>
​
    <dataHost name="dxdb2" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1" slaveThreshold="100">
        <heartbeat>select user()</heartbeat>
        <writeHost host="mycat-2.itax.local" 
                   url="jdbc:mysql://10.6.8.49:36000?useSSL=false&amp;allowPublicKeyRetrieval=true&amp;&ampserverTimezone=GMT%2B8;"
                   user="sales_manager" 
                   password="ueHjqtam%zB^WqW5">
        </writeHost>
    </dataHost>

根据日志报错查询度娘后,发现需要使用mycat8.0的驱动

Mycat1.6.7.6对Mysql8支持使用配置-腾讯云开发者社区-腾讯云

###修改驱动包
rm -rf mycat/lib/mysql-connector-java-5.1.5.jar
mv mysql-connector-java-8.0.18.jar mycat/lib/
chmod +x -R mycat/lib/

重新启动后发现,还有新的报错

JDBCHeartBeat error
java.sql.SQLException: No timezone mapping entry for 'GMT+8;'

查看配置文件后发现时区格式不对,索性我就直接干掉时区

schema.xml配置文件修改如下:

<dataNode name="dn1" dataHost="db1" database="invoice"/>
    <dataNode name="dn2" dataHost="db2" database="invoice"/>   
    <dataNode name="dx1" dataHost="dxdb1" database="sales_order"/>
    <dataNode name="dx2" dataHost="dxdb2" database="sales_order"/>
​
    <dataHost name="db1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1"  slaveThreshold="100">
        <heartbeat>select user()</heartbeat>
        <writeHost host="mycat-1.itax.local" 
                   url="jdbc:mysql://10.6.8.48:36000?useSSL=false&amp;allowPublicKeyRetrieval=true&amp;" 
                   user="sales_manager" 
                   password="ueHjqtam%zB^WqW5">
        </writeHost>
    </dataHost>
​
​
    <dataHost name="db2" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1" slaveThreshold="100">
        <heartbeat>select user()</heartbeat>
        <writeHost host="mycat-2.itax.local" 
                   url="jdbc:mysql://10.6.8.49:36000?useSSL=false&amp;allowPublicKeyRetrieval=true&amp;"
                   user="sales_manager" 
                   password="ueHjqtam%zB^WqW5">
        </writeHost>
    </dataHost>
    <dataHost name="dxdb1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1" slaveThreshold="100">
        <heartbeat>select user()</heartbeat>
        <writeHost host="mycat-1.itax.local" 
                   url="jdbc:mysql://10.6.8.48:36000?useSSL=false&amp;allowPublicKeyRetrieval=true&amp;" 
                   user="sales_manager" 
                   password="ueHjqtam%zB^WqW5">
        </writeHost>
    </dataHost>
​
    <dataHost name="dxdb2" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1" slaveThreshold="100">
        <heartbeat>select user()</heartbeat>
        <writeHost host="mycat-2.itax.local" 
                   url="jdbc:mysql://10.6.8.49:36000?useSSL=false&amp;allowPublicKeyRetrieval=true&amp;"
                   user="sales_manager" 
                   password="ueHjqtam%zB^WqW5">
        </writeHost>
    </dataHost>

重启MyCat后,进入发现正常了!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值