51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

【WEB 系列】SpringBoot 数据库(URL)参数记录

  1. 数据库连接字符串示例:
jdbc:mysql://localhost:3306/mydb?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Hongkong
  1. 语句分解分析:
jdbc:mysql://localhost:3306/mydb
  • 连接本地 mysql 数据库 mydb
  • localhost 是本机的 IP 地址也就是127.0.0.1
  • 3306 是对应本地的端口号,一般是 mysql 数据库的连接端口
  • mydb就是对应要连接的数据库库名
autoReconnect=true
  • 当数据库连接异常中断时,是否自动重新连接
useUnicode=true&characterEncoding=utf8
  • 是否使用 Unicode 字符集,如果参数 characterEncoding 设置为 gb2312gbk ,本参数值必须设置为 true , 当useUnicode 设置为 true 时,指定字符编码。比如可设置为 gb2312gbk
  • 解决乱码问题
  • 系统编码类型为UTF-8 ,当数据库编码格式为GBA,也不会出现乱码
useSSL=false
  • 这个参数可以使 JDBC 兼容更高版本的数据库
serverTimezone=Hongkong
  • 数据库时区设置,UTC为世界时间
  • 世界时间比北京时间早 8 个钟
  • 时区设置为东八区时会出现各种陷阱,可直接修改 mysql 的配置文件
    或者设置serverTimezone=Asia/Shanghai
autoReconnectForPools=true
  • 是否使用针对数据库连接池的重连策略
failOverReadOnly=true
  • 自动重连成功后,连接是否设置为只读?
maxReconnectsautoReconnect=true
  • 设置为 true 时,重试连接的次数
initialTimeoutautoReconnect=true
  • 设置为 true 时,两次重连之间的时间间隔,单位:秒
connectTimeout=100
  • 和数据库服务器建立 socket 连接时的超时,单位:毫秒。 0 表示永不超时,适用于 JDK 1.4 及更高版本
socketTimeoutsocket=1000
  • 操作(读写)超时,单位:毫秒。 0 表示永不超时
  1. 其他

在使用数据库连接池的情况下,最好设置如下两个参数:

autoReconnect=true&failOverReadOnly=false

需要注意的是,在 xml 配置文件中,url 中的 & 符号需要转义成 &。比如在 tomcat 的 server.xml 中配置数据库连接池时,mysql jdbc url 样例如下:

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

参考:

https://www.cnblogs.com/yokoboy/archive/2013/03/01/2939315.html

MySQL 官网文档: http://dev.mysql.com/doc/refman/5.1/en/connector-j-reference-configuration-properties.html

https://www.huaweicloud.com/articles/e70b4852d363bdad2cce3be977590d38.html

赞(0)
未经允许不得转载:工具盒子 » 【WEB 系列】SpringBoot 数据库(URL)参数记录