- SpringBoot中MySQL連接字符串配置樣例:
spring:
datasource:
url: jdbc:mysql://localhost:3306/<database_name>?useSSL=false&allowPublicKeyRetrieval=true&serverTimezone=UTC&characterEncoding=UTF-8
username: root
password: root
driver-class-name: com.mysql.jdbc.Driver
- MySQL連接字符串后面可攜帶的參數(shù)包括:
useUnicode
,characterEncoding
,autoReconnect
,failOverReadOnly
,maxReconnects
,socketTimeout
,connectTimeout
,useCompression
,useSSL
,requireSSL
,verifyServerCertificate
,useLegacyDatetimeCode
,serverTimezone
,useJDBCCompliantTimezoneShift
,useGmtMillisForDatetimes
,dumpQueriesOnException
,emulateUnsupportedPstmts
,allowMultiQueries
,poolName
, 等等。
以下是完整的MySQL連接字符串示例:文章來源:http://www.zghlxwxcb.cn/news/detail-469009.html
jdbc:mysql://<host>:<port>/<database_name>?useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false&maxReconnects=<number>&socketTimeout=<ms>&connectTimeout=<ms>&useCompression=true/false&useSSL=true/false&requireSSL=true/false&verifyServerCertificate=true/false&useLegacyDatetimeCode=true/false&serverTimezone=<timezone>&useJDBCCompliantTimezoneShift=true/false&useGmtMillisForDatetimes=true/false&dumpQueriesOnException=true/false&emulateUnsupportedPstmts=true/false&allowMultiQueries=true/false&poolName=<pool_name>
- 下表詳細(xì)解釋了MySQL連接字符串后面各個(gè)參數(shù)的用途和注意事項(xiàng):
參數(shù) | 值 | 用途 | 注意事項(xiàng) |
---|---|---|---|
useUnicode |
true /false
|
指定是否使用 Unicode 字符集。 | 如果不設(shè)置或設(shè)置為 false,可能會(huì)導(dǎo)致插入和查詢出現(xiàn)亂碼。 |
characterEncoding |
utf8 /gbk 等 |
指定字符編碼集。 | 可以根據(jù)具體情況選擇合適的字符編碼集。 |
autoReconnect |
true /false
|
是否自動(dòng)重新連接。 | 如果設(shè)置為 true,可能會(huì)導(dǎo)致系統(tǒng)負(fù)載過大。 |
failOverReadOnly |
true /false
|
當(dāng)連接指向主數(shù)據(jù)庫時(shí),如果主數(shù)據(jù)庫失效,是否切換到從數(shù)據(jù)庫。 | 主數(shù)據(jù)庫故障時(shí)才使用,一般沒必要設(shè)置。 |
maxReconnects |
整數(shù) | 設(shè)置嘗試重新連接的最大次數(shù)。 | 連接失敗后將重新嘗試連接。 |
socketTimeout |
毫秒數(shù) | 套接字超時(shí)時(shí)間。 | 如果套接字超時(shí),則連接被視為失敗。 |
connectTimeout |
毫秒數(shù) | 連接超時(shí)時(shí)間。 | 如果連接超過此時(shí)間,則連接被視為失敗。 |
useCompression |
true /false
|
是否啟用壓縮。 | 該參數(shù)可提高數(shù)據(jù)傳輸效率。 |
useSSL |
true /false
|
是否啟用 SSL 連接。 | 如果數(shù)據(jù)庫本身不支持 SSL 連接,則該參數(shù)設(shè)置為 true 會(huì)導(dǎo)致連接失敗。 |
requireSSL |
true /false
|
是否要求使用 SSL 連接。 | 只接受 SSL 連接。 |
verifyServerCertificate |
true /false
|
是否驗(yàn)證服務(wù)器證書。 | 默認(rèn)情況下,MySQL 不驗(yàn)證服務(wù)器證書。 |
useLegacyDatetimeCode |
true /false
|
是否使用舊版日期時(shí)間代碼。 | 如果設(shè)置為 true,將使用舊版的 MySQL 日期時(shí)間代碼。 |
serverTimezone |
UTC /GMT+8 等 |
指定時(shí)區(qū)。 | 時(shí)區(qū)的設(shè)置應(yīng)該與服務(wù)器所在時(shí)區(qū)相同,否則可能會(huì)影響時(shí)間戳等操作。 |
useJDBCCompliantTimezoneShift |
true /false
|
是否將 Java 時(shí)間轉(zhuǎn)換為 JDBC 規(guī)范的時(shí)間格式。 | 如果設(shè)置為 true,則將使用 JDBC 規(guī)范的時(shí)間格式。如果設(shè)置為 false,則將使用 MySQL 特定的時(shí)間格式。 |
useGmtMillisForDatetimes |
true /false
|
是否使用 GMT 毫秒數(shù)作為日期時(shí)間值。 | 如果設(shè)置為 true,則將使用 GMT 毫秒數(shù)作為日期時(shí)間值。如果設(shè)置為 false,則將使用本地時(shí)區(qū)的絕對(duì)毫秒數(shù)。 |
dumpQueriesOnException |
true /false
|
是否在異常時(shí)打印 SQL 查詢語句。 | 只有在調(diào)試期間才需要設(shè)置為 true。默認(rèn)情況下,不會(huì)打印 SQL 查詢語句。 |
emulateUnsupportedPstmts |
true /false
|
是否模擬不支持預(yù)處理語句的情況。 | 如果設(shè)置為 true,則將模擬不支持預(yù)處理語句的情況。如果設(shè)置為 false,則會(huì)嘗試使用預(yù)處理語句。 |
allowMultiQueries |
true /false
|
是否允許一次執(zhí)行多個(gè)查詢。 | 只有在特定的情況下才需要啟用此選項(xiàng)。否則會(huì)增加安全風(fēng)險(xiǎn)。 |
poolName |
字符串 | 連接池的名稱。 | 如果使用連接池,則需要為連接池指定一個(gè)名稱。 |
注意:以上參數(shù)并非全部可用,具體應(yīng)根據(jù)實(shí)際情況選擇合適的參數(shù)和值。文章來源地址http://www.zghlxwxcb.cn/news/detail-469009.html
到了這里,關(guān)于SpringBoot中MySQL連接字符串配置的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!