Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
347 views
in Technique[技术] by (71.8m points)

数据库连接url后缀太长了

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


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

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.

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
...