關(guān)于MySql鏈接url參數(shù)的設(shè)置

關(guān)于MySql鏈接url參數(shù)的設(shè)置

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/database?useUnicode=true&characterEncoding=utf8&autoReconnect=true&rewriteBatchedStatements=TRUE
jdbc.username=root
jdbc.password=password

database.url=jdbc:mysql://database_server:3306/oauth?autoReconnect=true&useUnicode=true&createDatabaseIfNotExist=true&characterEncoding=utf8&useSSL=true&serverTimezone=UTC

特別說明其中的jdbc.url配置:如果你已經(jīng)升級(jí)好了mysql-connector,其中的characterEncoding=utf8可以被自動(dòng)被識(shí)別為utf8mb4(當(dāng)然也兼容原來的utf8),而autoReconnect配置我強(qiáng)烈建議配上,我之前就是忽略了這個(gè)屬性,導(dǎo)致因?yàn)榫彺婢壒?,沒有讀取到DB最新配置,導(dǎo)致一直無法使用utf8mb4字符集,多么痛的領(lǐng)悟??!

沒有讓mysql驅(qū)動(dòng)開啟批量執(zhí)行sql的開關(guān)。

怎么開啟呢?在拼裝mysql鏈接的url時(shí),為其加上allowMultiQueries參數(shù),設(shè)置為true,如下:

jdbc.jdbcUrl=jdbc:mysql://127.0.0.1:3306/database?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true

mysql JDBC URL格式如下:

jdbc:mysql://[host:port],[host:port].../[database][?參數(shù)名1][=參數(shù)值1][&參數(shù)名2][=參數(shù)值2]...

常用的幾個(gè)較為重要的參數(shù):

參數(shù)名稱 參數(shù)說明 缺省值 最低版本要求
user 數(shù)據(jù)庫用戶名(用于連接數(shù)據(jù)庫) 所有版本
passWord 用戶密碼(用于連接數(shù)據(jù)庫) 所有版本
useUnicode 是否使用Unicode字符集,如果參數(shù)characterEncoding設(shè)置為gb2312或gbk,本參數(shù)值必須設(shè)置為true false 1.1g
characterEncoding 當(dāng)useUnicode設(shè)置為true時(shí),指定字符編碼。比如可設(shè)置為gb2312或gbk false 1.1g
autoReconnect 當(dāng)數(shù)據(jù)庫連接異常中斷時(shí),是否自動(dòng)重新連接? false 1.1
autoReconnectForPools 是否使用針對(duì)數(shù)據(jù)庫連接池的重連策略 false 3.1.3
failOverReadOnly 自動(dòng)重連成功后,連接是否設(shè)置為只讀? true 3.0.12
maxReconnects autoReconnect設(shè)置為true時(shí),重試連接的次數(shù) 3 1.1
initialTimeout autoReconnect設(shè)置為true時(shí),兩次重連之間的時(shí)間間隔,單位:秒 2 1.1
connectTimeout 和數(shù)據(jù)庫服務(wù)器建立socket連接時(shí)的超時(shí),單位:毫秒。 0表示永不超時(shí),適用于JDK 1.4及更高版本 0 3.0.1
socketTimeout socket操作(讀寫)超時(shí),單位:毫秒。 0表示永不超時(shí) 0 3.0.1

對(duì)應(yīng)中文環(huán)境,通常mysql連接URL可以設(shè)置為:

復(fù)制代碼代碼如下:

jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false

在使用數(shù)據(jù)庫連接池的情況下,最好設(shè)置如下兩個(gè)參數(shù):

復(fù)制代碼代碼如下:

autoReconnect=true&failOverReadOnly=false

需要注意的是,在xml配置文件中,url中的&符號(hào)需要轉(zhuǎn)義成&。比如在tomcat的server.xml中配置數(shù)據(jù)庫連接池時(shí),mysql jdbc url樣例如下:

復(fù)制代碼代碼如下:

jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly

http://www.jb51.net/article/47764.htm

jdbc:mysql://127.0.0.1:3306/demo_ds?useServerPrepStmts=true&cachePrepStmts=true
設(shè)置參數(shù)useServerPrepStmts=true,這個(gè)參數(shù)的作用是讓MySQL服務(wù)進(jìn)行prepare。沒有這個(gè)參數(shù)就是讓JDBC進(jìn)行prepare,MySQL完全感知不到,是沒有什么意義的。
cachePrepStmts=true這個(gè)參數(shù)的意思是告訴JDBC緩存需要prepare的SQL

https://www.cnblogs.com/softidea/p/9180189.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 首先 我們先拖拽一個(gè)switch控件 并將其與 ViewController.m 關(guān)聯(lián),以方便我們以下的操作 1...
    J_mine閱讀 533評(píng)論 0 0
  • 1.會(huì)一樣牛的技能,是多么幸福 一個(gè)人如果有一項(xiàng)比較牛的技能,一般來說,這個(gè)人應(yīng)該是一個(gè)非常自信的人。比如你在跳舞...
    葉子陪你玩閱讀 480評(píng)論 0 1
  • 01.離婚 我沒說話,等著她倒一肚子的苦水。 她說,她想離婚了。我問原因呢? 接下來是她的自述。 從結(jié)婚開始,婆家...
    靜靜書話閱讀 2,927評(píng)論 0 5

友情鏈接更多精彩內(nèi)容