数据库连接url后缀太长了

在学习项目开发中,经常提示数据库报错,可能是时区错误,可能是编码错误, 查到的解决办法都是加入后缀信息。不知不觉就变成了b.url=jdbc:mysql://localhost:3306/test\_mybatis?characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false&nullCatalogMeansCurrent=true。
这样的后缀也太长了,迁移到服务器,这样的后缀不一定正好符合服务器的mysql数据库吧。
是要统一对数据库进行时区设置,还是就是要使用常常的后缀。

阅读 2.4k
1 个回答

MySQL服务器配置参数在不同版本上默认值是不一样的,有些参数还依赖于操作系统。

如果你的应用使用配置值有别于你使用的MySQL服务器的默认值,最好还是明确在url中指出。这样可以重载服务器的配置,明确应用的需求。但如果配置的值也是服务器的默认值,则没有必要。

如果你自己维护数据,同时对数据库服务器配置有明确的规范,也可以不指定特定的参数,如字符集,时区等等,缺点是代码不便移植了。

上面用到的:

characterEncoding=utf-8  # 默认值是 'autodetect'
serverTimezone=GMT+8
useSSL=false
nullCatalogMeansCurrent=true

这几个参数在最新版的MySQL服务器默认值并不一致,所在最好还是明确指定。

注:
nullCatalogMeansCurrent 从 3.1.8 起默认为 true, 从 8.0 起默认为 false。
useSSL 默认为false, 但 MySQL 5.5.45+, 5.6.26+ 或 5.7.6+ 以上版本默认为 true.
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏