通过YML配置MySQL时,createDatabaseIfNotExist参数值错误导致部署报错
解决
createDatabaseIfNotExist参数格式错误问题 这明显是JDBC连接URL的参数拼接格式出问题啦!错误提示已经说得很直白:createDatabaseIfNotExist这个属性只认true/false/yes/no这几个值,但你把它和useUnicode=yes直接连写成了true?useUnicode=yes,相当于给这个属性传了个完全不符合要求的值,自然会报错。
问题根源
JDBC URL里,第一个参数用?开头,后续的多个参数必须用&来分隔,而不是把第二个参数直接接在第一个参数的取值后面。你现在的写法等于把createDatabaseIfNotExist的取值设成了true?useUnicode=yes,这肯定不符合规则。
正确配置示例
假设你原来YML里的数据源URL是这种错误写法:
spring: datasource: url: jdbc:mysql://localhost:3306/your_db?createDatabaseIfNotExist=true?useUnicode=yes&characterEncoding=utf8
只需要把第二个?改成&,就能修复这个问题:
spring: datasource: url: jdbc:mysql://localhost:3306/your_db?createDatabaseIfNotExist=true&useUnicode=yes&characterEncoding=utf8
额外注意点
- 所有参数都要放在第一个
?之后,后续每加一个新参数就用&开头 - 务必确认每个参数的取值都符合对应属性的要求,像
createDatabaseIfNotExist就别乱加额外内容
内容的提问来源于stack exchange,提问作者SGG
相关产品推荐
相关产品推荐

