在用SpringSecurity整合MySQL数据库实现认证的时候,数据库中的英文用户可以认证,但带有中文的用户却报错误,查询结果为空
让我一个排错呀
其实很简单,既然英文用户就可以认证,表明sql语句,JdbcTemplate,以及程序都没有错误
那问什么带中文就不行呢,应该考虑数据库方面的问题,sql语句的中文支持了
MySQL的url未配置中文即转换
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/usertest?serverTimezone=UTC
username: root
password: root
在url后面添加
&useUnicode=true&characterEncoding=utf-8
即可
url较完整的配置
useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=false
useUnicode=true&characterEncoding=utf-8 字符编码
useSSL=false (发现是8版本开始才需要添加,5.X印象中不需要,添加这个参数可能和MySQL的SSL连接设置有关系
serverTimezone=UTC 时区问题,时区支持
错误犯得太愚蠢了,望大家不要犯这样的错误,耽误时间(盲目排了三个小时才解决)