JDBC連接Mysql數(shù)據(jù)庫出現(xiàn)的問題匯總

MySQL

前言

最近安裝了一個 mysql 8.0 版本的數(shù)據(jù)庫,在程序中連接的時候可謂是狀況不斷。之前也會遇到一些問題,這里就對使用 JDBC 連接mysql 會出現(xiàn)的問題做一個匯總。

在此之前說明一下環(huán)境:

  • 開發(fā)工具:IDEA

  • mysql版本: 8.0.12 for Win64 on x86_64 (MySQL Community Server - GPL)

  • mysql驅(qū)動包:8.0.12

驅(qū)動包URL 的改變

異常信息

Loading class com.mysql.jdbc.Driver. This is deprecated. The new driver class is com.mysql.cj.jdbc.Driver. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.

原因

通過異常我們可以發(fā)現(xiàn),新的驅(qū)動url是com.mysql.cj.jdbc.Driver,經(jīng)過在網(wǎng)上查閱資料發(fā)現(xiàn)觉吭,從 mysql6開始,驅(qū)動包開始使用新的驅(qū)動 url仆邓。如果使用舊的 5.0 版本的驅(qū)動包鲜滩,則不用驅(qū)動URL伴鳖,但是如果使用舊的驅(qū)動可能會出現(xiàn)一些意想不到的問題。所以還是建議將驅(qū)動包升級绒北,然后改變 驅(qū)動 URL 的值黎侈。

解決方法

將驅(qū)動 URL 由com.mysql.jdbc.Driver 換成 com.mysql.cj.jdbc.Driver

SSL 警告

警告信息

Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.

原因

對警告信息翻譯如下。

不建議在沒有服務器身份驗證的情況下建立SSL連接闷游。根據(jù)MySQL 5.5.45+峻汉,如果未設置顯式選項,則默認情況下必須建立5.6.26+和5.7.6+要求的SSL連接脐往。對于不使用SSL的現(xiàn)有應用程序休吠,ValuyServer證書屬性設置為“false”。您需要通過設置useSSL=false來顯式禁用SSL业簿,或者設置useSSL=true并提供用于服務器證書驗證的信任庫`瘤礁。

解決方法

一般在開發(fā)中基本不需要使用 SSL 連接,在連接字符串后添加useSSL=false參數(shù)就行梅尤。但是如果真的有 SSL 連接的需要柜思,則在驅(qū)動 URL 后添加useSSL=true參數(shù)。

jdbc:mysql://localhost:3306/dbname?characterEncoding=UTF-8&useSSL=false

時區(qū)問題

異常信息

java.sql.SQLException: The server time zone value '?D1ú±ê×?ê±??' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

原因

同樣也是由于版本升級后巷燥,新的版本數(shù)據(jù)庫和系統(tǒng)之間有了時區(qū)差異赡盘,需要指定時區(qū)serverTimezone

解決方法

  • 連接字符串后添加參數(shù)&serverTimezone=GMT%2B8,最終連接字符串如下:

    jdbc:mysql://localhost:3306/dbname?characterEncoding=UTF-8&useSSL=false&serverTimezone=GMT%2B8
    
  • 修改數(shù)據(jù)庫時間缰揪。先通過命令行連上數(shù)據(jù)庫陨享,依次輸入命令及其輸出如下

    mysql> show variables like "%time_zone";
    +------------------+--------+
    | Variable_name    | Value  |
    +------------------+--------+
    | system_time_zone |        |
    | time_zone        | SYSTEM |
    +------------------+--------+
    2 rows in set, 1 warning (0.04 sec)
    
    mysql> set global time_zone="+8:00";
    Query OK, 0 rows affected (0.01 sec)
    

XML 配置文件中 & 的轉(zhuǎn)義

異常信息

org.mybatis.generator.exception.XMLParserException: XML Parser Error on line 16: 對實體 "useSSL" 的引用必須以 ';' 分隔符結尾。

原因

這是我在使用mybatis generator時出現(xiàn)的錯誤钝腺。當時我想在連接字符串后加上useSSL參數(shù)抛姑,但是由于在 XML 文件中,&是被禁止的艳狐,所以需要使用 &的時要用它的轉(zhuǎn)義&來代替定硝。

解決方法

將連接字符串中的 &符號改成&

詳細連接字符串參考

jdbc:mysql://127.0.0.1:3306/dbname?useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&serverTimezone=GMT%2B8&verifyServerCertificate=false&autoReconnct=true&autoReconnectForPools=true&allowMultiQueries=true 

當然如果是使用 XML 作為配置文件,需要將 連接字符串中的 &符號改成&

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末毫目,一起剝皮案震驚了整個濱河市喷斋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌蒜茴,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浆西,死亡現(xiàn)場離奇詭異粉私,居然都是意外死亡,警方通過查閱死者的電腦和手機近零,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評論 3 399
  • 文/潘曉璐 我一進店門诺核,熙熙樓的掌柜王于貴愁眉苦臉地迎上來抄肖,“玉大人,你說我怎么就攤上這事窖杀±炷Γ” “怎么了?”我有些...
    開封第一講書人閱讀 169,421評論 0 362
  • 文/不壞的土叔 我叫張陵入客,是天一觀的道長管毙。 經(jīng)常有香客問我,道長桌硫,這世上最難降的妖魔是什么夭咬? 我笑而不...
    開封第一講書人閱讀 60,114評論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮铆隘,結果婚禮上卓舵,老公的妹妹穿的比我還像新娘。我一直安慰自己膀钠,他們只是感情好掏湾,可當我...
    茶點故事閱讀 69,116評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著肿嘲,像睡著了一般融击。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上睦刃,一...
    開封第一講書人閱讀 52,713評論 1 312
  • 那天砚嘴,我揣著相機與錄音,去河邊找鬼涩拙。 笑死际长,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的兴泥。 我是一名探鬼主播工育,決...
    沈念sama閱讀 41,170評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼搓彻!你這毒婦竟也來了如绸?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 40,116評論 0 277
  • 序言:老撾萬榮一對情侶失蹤旭贬,失蹤者是張志新(化名)和其女友劉穎怔接,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體稀轨,經(jīng)...
    沈念sama閱讀 46,651評論 1 320
  • 正文 獨居荒郊野嶺守林人離奇死亡扼脐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,714評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了奋刽。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瓦侮。...
    茶點故事閱讀 40,865評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡艰赞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出肚吏,到底是詐尸還是另有隱情方妖,我是刑警寧澤,帶...
    沈念sama閱讀 36,527評論 5 351
  • 正文 年R本政府宣布罚攀,位于F島的核電站党觅,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏坞生。R本人自食惡果不足惜仔役,卻給世界環(huán)境...
    茶點故事閱讀 42,211評論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望是己。 院中可真熱鬧又兵,春花似錦、人聲如沸卒废。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,699評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽摔认。三九已至逆皮,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間参袱,已是汗流浹背电谣。 一陣腳步聲響...
    開封第一講書人閱讀 33,814評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留抹蚀,地道東北人剿牺。 一個月前我還...
    沈念sama閱讀 49,299評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像环壤,于是被迫代替她去往敵國和親晒来。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,870評論 2 361

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理郑现,服務發(fā)現(xiàn)湃崩,斷路器,智...
    卡卡羅2017閱讀 134,716評論 18 139
  • =========================================================...
    lavor閱讀 3,495評論 0 5
  • 曾經(jīng)你得到一筆數(shù)目可觀的錢接箫,欣喜若狂攒读,你小心經(jīng)營,自己不斷添進去一點辛友,還是活期隨用隨取整陌,好不受用。日子很快,一年三...
    小小羊_閱讀 151評論 0 0
  • 高考出成績的那天九默,看到這樣的一句話:不管高中這三年我會做了多少數(shù)學題震放,還是高考數(shù)學我考了多少分,我必須感謝曾經(jīng)那個...
    牛香香閱讀 1,374評論 0 2
  • 目標:我可以輕松的實現(xiàn)在2019年1月份以后的每一個月的工資驼修,將都是完完全全的屬于我自己的殿遂,可以隨意支配的了! 動...
    殷琴閱讀 176評論 0 0