互聯(lián)網(wǎng)應(yīng)用架構(gòu):專注編程教學船响,架構(gòu),JAVA躲履,Python见间,微服務(wù),機器學習等領(lǐng)域工猜,歡迎關(guān)注米诉,一起學習。
很不巧篷帅,今天在工作的時候有一位同事又遇到了這種問題史侣,好熟悉的問題拴泌。
在幾天前做項目的時候就發(fā)現(xiàn)了這種問題,但是忘了怎么解決惊橱,今天又遇見了蚪腐,那就好好來分析一下這是怎么回事。
環(huán)境說明
數(shù)據(jù)庫:mysql
操作工具:mybatis税朴,mybatis-plus回季,druid,P6Spy
問題查找
從錯誤直觀分析是顯示數(shù)據(jù)庫類型不支持正林,為null泡一,那為什么以前沒用P6Spy不會出現(xiàn)這種情況,初步判斷是P6Spy進行代理的時候出了問題觅廓,接著看錯誤代碼顯示是WallFilter出現(xiàn)了問題鼻忠,那這個時候就好找了,直接進入到該類里面杈绸,發(fā)現(xiàn)以下代碼
elseif(rawUrl.startsWith("jdbc:mysql:") || rawUrl.startsWith("jdbc:cobar:")
|| rawUrl.startsWith("jdbc:log4jdbc:mysql:")) {
returnMYSQL;
問題的根據(jù)找到了粥烁,druid從url的前綴獲取dbType,但是我們現(xiàn)在的url變成了這樣子蝇棉,咱們的前綴被我們采用P6Spy進行了代理,所以獲取不到了
jdbc:p6spy:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false
問題解決
既然是WallFilter出現(xiàn)了問題芥永,那我們直接解決掉這個WallFilter即可
替換前:
filter-class-names:stat,slf4j,wall
替換后:
filter-class-names:stat,slf4j
--END--
作者:@互聯(lián)網(wǎng)應(yīng)用架構(gòu)
原創(chuàng)作品篡殷,抄襲必究
如需要源碼,轉(zhuǎn)發(fā)埋涧,關(guān)注后私信我
部分圖片或代碼來源網(wǎng)絡(luò)板辽,如侵權(quán)請聯(lián)系刪除,謝謝棘催!