本文檔不隻是解決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/
解壓以後,我解決把代碼複制到程式中了
我複制的這部分内容
接下來處理 query_cache_size問題
SelectHandler
c.execute(stmt, ServerParse.SELECT);
改為
SelectVariables.execute(c,stmt);
然後重新打包就可以了,隻有有沒有其他bug,暫時沒發現。
修改好的程式包可以直接 https://download.csdn.net/download/zhangjing7809/16547316 進行下載下傳