不想看问题描述的直接看解决办法。
问题描述:
我们采用spring+mysql做项目,在写完Repository测试时,发现插入数据库的汉字都是乱码。网上查是数据库编码问题,有的建议配置数据源时令url=jdbc:mysql://localhost:3306/solawdb?useUnicode=true&characterEncoding=UTF-8,不过无效。根本原因是数据库编码用的latin
于是又搜到如下命令修改数据库,数据表和数据字段的默认编码:
j将数据库(test)的编码方式修改为utf8,如:
ALTER DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
.修改表的编码
将表(test)的编码方式修改为utf8,如:
ALTER TABLE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
.修改字段的编码
将表(test)中字段(name)的编码方式修改为utf8,如:
ALTER TABLE `test` CHANGE `name` `name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL;
经试验还是无效
解决办法
1 hdpuser1@master:~$ sudo /etc/init.d/mysql stop
2 hdpuser1@master:~$ sudo gedit /etc/mysql/my.cnf
在找到[mysqld] 添加:character-set-server=utf8 (注意,老版本mysql为:default-character-set=utf8)
3 hdpuser1@master:~$ sudo service mysql start (注意,修改后再启动mysql不可用 sudo /etc/init.d/mysql start)
4 重新建表,否则原来的表编码仍为latin