SpringBoot中MySQL连接字符串配置

53 篇文章 0 订阅
  1. 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
  1. MySQL连接字符串后面可携带的参数包括:useUnicode, characterEncoding, autoReconnect, failOverReadOnly, maxReconnects, socketTimeout, connectTimeout, useCompression, useSSL, requireSSL, verifyServerCertificate, useLegacyDatetimeCode, serverTimezone, useJDBCCompliantTimezoneShift, useGmtMillisForDatetimes, dumpQueriesOnException, emulateUnsupportedPstmts, allowMultiQueries, poolName, 等等。

以下是完整的MySQL连接字符串示例:

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>
  1. 下表详细解释了MySQL连接字符串后面各个参数的用途和注意事项:
参数用途注意事项
useUnicodetrue/false指定是否使用 Unicode 字符集。如果不设置或设置为 false,可能会导致插入和查询出现乱码。
characterEncodingutf8/gbk指定字符编码集。可以根据具体情况选择合适的字符编码集。
autoReconnecttrue/false是否自动重新连接。如果设置为 true,可能会导致系统负载过大。
failOverReadOnlytrue/false当连接指向主数据库时,如果主数据库失效,是否切换到从数据库。主数据库故障时才使用,一般没必要设置。
maxReconnects整数设置尝试重新连接的最大次数。连接失败后将重新尝试连接。
socketTimeout毫秒数套接字超时时间。如果套接字超时,则连接被视为失败。
connectTimeout毫秒数连接超时时间。如果连接超过此时间,则连接被视为失败。
useCompressiontrue/false是否启用压缩。该参数可提高数据传输效率。
useSSLtrue/false是否启用 SSL 连接。如果数据库本身不支持 SSL 连接,则该参数设置为 true 会导致连接失败。
requireSSLtrue/false是否要求使用 SSL 连接。只接受 SSL 连接。
verifyServerCertificatetrue/false是否验证服务器证书。默认情况下,MySQL 不验证服务器证书。
useLegacyDatetimeCodetrue/false是否使用旧版日期时间代码。如果设置为 true,将使用旧版的 MySQL 日期时间代码。
serverTimezoneUTC/GMT+8指定时区。时区的设置应该与服务器所在时区相同,否则可能会影响时间戳等操作。
useJDBCCompliantTimezoneShifttrue/false是否将 Java 时间转换为 JDBC 规范的时间格式。如果设置为 true,则将使用 JDBC 规范的时间格式。如果设置为 false,则将使用 MySQL 特定的时间格式。
useGmtMillisForDatetimestrue/false是否使用 GMT 毫秒数作为日期时间值。如果设置为 true,则将使用 GMT 毫秒数作为日期时间值。如果设置为 false,则将使用本地时区的绝对毫秒数。
dumpQueriesOnExceptiontrue/false是否在异常时打印 SQL 查询语句。只有在调试期间才需要设置为 true。默认情况下,不会打印 SQL 查询语句。
emulateUnsupportedPstmtstrue/false是否模拟不支持预处理语句的情况。如果设置为 true,则将模拟不支持预处理语句的情况。如果设置为 false,则会尝试使用预处理语句。
allowMultiQueriestrue/false是否允许一次执行多个查询。只有在特定的情况下才需要启用此选项。否则会增加安全风险。
poolName字符串连接池的名称。如果使用连接池,则需要为连接池指定一个名称。

注意:以上参数并非全部可用,具体应根据实际情况选择合适的参数和值。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

123的故事

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值