天天看點

mycat連接配接資料庫8.0以上 處理程式連接配接query_cache_size報錯資訊 mycat更新資料庫踩坑

本文檔不隻是解決query_cache_size問題,還說明如何下載下傳代碼及如何進行更新。

本文檔,是我踩的坑,希望讓大家少走彎路了。

基于現有包修改驅動

mycat1.x版本不支援mysql8.0;mycat2.0還沒有提供正式包也不敢用。是以隻能讓mycat1.x版本來支援mysql8.0.

先使用最新的mycat1.6.7 使用網上的方法,更換驅動包 為8.0以上,但是 navicat連接配接沒有問題,但是程式連接配接報錯 query_cache_size;

更換 mycat為舊版本1.6.4 ,更換驅動包,這樣,程式不報錯了,并且navicat可以連接配接沒問題,但是 時不時就出現  Cannot execute statement in a READ ONLY transaction.這個地方很有意思,不是一直報這個錯,頻繁的操作資料庫才會報錯。

使用mycat1.4 ,直接登入不了。

到此為止,我已經對于mycat提供好的程式包無能為力,隻能修改mycat源碼了

mycat源碼修改

代碼選擇這部分可能我是走彎路,要是有更好方法就直接跳過吧

也是很難的,很多版本,也不知道哪個是正式穩定的版本。是以就随意選擇了一個

https://github.com/MyCATApache/Mycat-Server/tree/1.676-2020-11-2 我是基于這個修改,至于,到底用哪個可以自己斟酌一下了。我選擇的這個版本還是有問題的,程式連接配接的時候不能修改資料,直接報錯,是以還是要更新程式。

然後 在包下載下傳位址找個資源包,http://dl.mycat.org.cn/ 我選擇的是  http://dl.mycat.org.cn/1.6.7.6/20210303094759/

mycat連接配接資料庫8.0以上 處理程式連接配接query_cache_size報錯資訊 mycat更新資料庫踩坑

解壓以後,我解決把代碼複制到程式中了

mycat連接配接資料庫8.0以上 處理程式連接配接query_cache_size報錯資訊 mycat更新資料庫踩坑

我複制的這部分内容

接下來處理  query_cache_size問題  

mycat連接配接資料庫8.0以上 處理程式連接配接query_cache_size報錯資訊 mycat更新資料庫踩坑

SelectHandler  

c.execute(stmt, ServerParse.SELECT);       

改為

SelectVariables.execute(c,stmt);      

然後重新打包就可以了,隻有有沒有其他bug,暫時沒發現。

修改好的程式包可以直接 https://download.csdn.net/download/zhangjing7809/16547316  進行下載下傳

繼續閱讀