您好,登錄后才能下訂單哦!
Mycat 目前還未全面支持MySQL 8以上的版本,可能會導致一些問題,例如Mycat連接MySQL 8時可能會報密碼錯誤,因為新版的密碼加密方式與舊版不一樣。還有就是時區問題,新版的連接方式需要增加時區參數。除此之外,可能還會有一些其他問題。因此,我們需要更改Mycat的一些配置,讓其能正常連接MySQL 8.x。
首先需要下載8.x
版本的驅動,Mycat 默認的MySQL驅動版本為5.x
。到maven中央倉庫上復制8.x驅動jar包的下載地址,然后到Linux上使用wget
命令進行下載:
[root@txy-server ~]# cd /usr/local/src
[root@txy-server /usr/local/src]# wget https://repo1.maven.org/maven2/mysql/mysql-connector-java/8.0.18/mysql-connector-java-8.0.18.jar
將驅動包移動到mycat的lib
目錄下,并刪除原本的5.x
驅動包:
[root@txy-server /usr/local/src]# mv mysql-connector-java-8.0.18.jar /usr/local/mycat/lib/
[root@txy-server /usr/local/src]# rm -rf /usr/local/mycat/lib/mysql-connector-java-5.1.35.jar
接著使用chmod
命令設置該驅動包的權限:
[root@txy-server /usr/local/mycat]# chmod 777 lib/mysql-connector-java-8.0.18.jar
修改位于conf
目錄下的schema.xml
配置文件,目的是更改Mycat連接MySQL的方式:
[root@txy-server /usr/local/mycat]# vim conf/schema.xml
修改dataHost
標簽中的dbDriver
屬性為jdbc
,以及修改 writeHost
標簽中的url
屬性:
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1"
url="jdbc:mysql://192.168.130.28:3306?useSSL=false&serverTimezone=GMT%2B8"
user="root"
password="123456">
</writeHost>
</dataHost>
修改位于conf
目錄下的server.xml
配置文件:
[root@txy-server /usr/local/mycat]# vim conf/server.xml
將useHandshakeV10
設置為1
,如果沒該標簽則添加即可:
<system>
<property name="useHandshakeV10">1</property>
...
</system>
重啟 Mycat:
[root@txy-server /usr/local/mycat]# mycat stop
Stopping Mycat-server...
Stopped Mycat-server.
[root@txy-server /usr/local/mycat]# mycat start
Starting Mycat-server...
[root@txy-server /usr/local/mycat]#
在測試能否正常連接 Mycat 時又遇到了另一個問題,使用MySQL 8.x的客戶端工具連接 Mycat 報了個密碼錯誤:
[root@txy-server ~]# mysql -uroot -p -P9066 -h227.0.0.1
Enter password:
ERROR 1045 (HY000): Access denied for user 'root', because password is error
[root@txy-server ~]#
同樣,這也是因為MySQL 8以上的版本與之前版本的密碼加密方式不一樣。而 Mycat 目前還是只支持5.x版本的加密方式,所以使用8以上版本的MySQL客戶端工具連接Mycat時就會報密碼錯誤。
解決方式主要有兩種,一是指定mysql客戶端連接時的加密方式。如下示例:
[root@txy-server ~]# mysql -uroot -p -P9066 -h227.0.0.1 --default-auth=mysql_native_password
二是采用5.x版本的MySQL客戶端工具來連接 Mycat。如下示例:
[root@txy-server /usr/local/mysql-5.7.28]# bin/mysql -uroot -p -P9066 -h227.0.0.1
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。