上一篇咱们唠到spring data redis 自定义注解设置失效时间,文末我把redis可视化贴了出来,几乎没人会发现对象Person的属性name我赋值了"asd"字符串,这是因为我在测试时,用中文本地的mysql出现了中文乱码,所以这次我就回头解决了这个问题,这篇博客与上一篇算是具有一定连贯性.
如果您已经安装了mysql,并且出现中文乱码,首先您要做的是:
1.net stop mysql,没设置环境变量的要到/bin目录下
2.mysqld -remove
3.重启电脑
4.找到您my.ini/default.ini
4.1. 设置客户端默认字符集default-character-set=utf8
4.2. 设置服务端默认字符集character-set-server=utf8
4.3.多说一句如果您安装的是mysql 8.x无需配置data路径mysql会自动创建,安装目录只需一个反斜杠就好了"\"
5.将您原有的data文件删除
6.初始化mysql: mysqld --initialize --console 注意root@localhost:后面是初始密码如下
A temporary password is generated for root@localhost: )dug;6s<Zt?u
如果你看到console结果对utf8有疑问,请忽略,千万不要设置为utf8mb4/utf8mb3,他会这样误导的告诉你:
[Server] --character-set-server: 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
7.mysql install 安装mysql服务
8.net start mysql 启动mysql服务
9.mysql -uroot -p初始密码
10.ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root'; //修改密码为root
如果您未安装mysql请移步google,不过这里的所述步骤仍具有参考性.
11.设置您的application.properties文件或.yml/.yaml中的spring.datasource.url 如下
url: jdbc:mysql://localhost:3306/spring_data?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf-8
其中spring_data是您的数据库名称注意替换,没有会创建.
以上就能解决mysql中文乱码问题,在我前面的实际项目中您重启后如若发现创建数据表任意失败,要删除spring_data(您的数据库名称),与java混合开发环境下要在build.gradle中请先移除allOpen插件,刷新后重新bootRun,记得最后成功后还要加上allOpen插件.