mysql数据库连接后缀的作用

想必新手小伙伴们对数据库连接后缀,都会有或多或少有一些疑问,下面跟着猿猿一起看看叭!


url: jdbc:mysql://127.0.0.1:3306/xxx
?useUnicode=true&characterEncoding=utf8
&autoReconnect=true
&allowMultiQueries=true
&useSSL=false
&serverTimezone=Asia/Shanghai
&allowPublicKeyRetrieval=true


1. useUnicode=true

  • useUnicode=true 后面的配置 characterEncoding配置才能生效
  • characterEncoding=utf-8的配置的作用主要配置的是mysql服务端的编码,mysql驱动的代码中,会将将要发送mysql服务端的sql使用characterEncoding指定的值进行转码,然后将转码后的字节发送到mysql服务端。建议我们characterEncoding这个值的配置尽量与mysql服务端的编码一致

2. autoReconnect=true

超时重连: 在使用mysql是的时候,如果超过8小时数据库没有操作,会自动断开连接。

3. allowMultiQueries=true

  • 可以在sql语句后携带分号,实现多语句执行。
  • 可以执行批处理,同时发出多个SQL语句。
  • Mybatis映射文件中的sql语句默认是不支持以" ; " 结尾,也就是不支持多条sql语句的执行。需要在连接mysql的url上加 &allowMultiQueries=true 运行批量操作才可以进行。

4. useSSL=false

SSL:Secure Sockets Layer 安全套接字协议

  • 在mysql进行连接的时候,如果mysql的版本是5.7之后的版本必须要加上useSSL=false,mysql5.7以及之前的版本则不用进行添加useSSL=false,会默认为false
  • useSSL=true是进行安全验证,一般通过证书或者令牌什么的
  • useSSL=false就是通过账号密码进行连接,通常使用useSSL=false

5. serverTimezone=Asia/Shanghai

serverTimezone 关于时区的设置 常见问题:从数据库返回的时间比真正保存的时间提前8小时。 解决:将 serverTimezone=UTC 改为 serverTimezone=Asia/Shanghai

6. allowPublicKeyRetrieval=true

允许客户端从服务器获取公钥

你可能感兴趣的:(后端冲鸭,mysql)