早上起来,重新将原本的centos重装,却发生docker上mysql无法存入中文的错误
尝试过以下方案,都没用。
//设置 mysql字符格式
docker-compose up
docker ps // 查看容器名字或是id
docker exec -it v-mysql mysql -u root -p //输入密码
//进入mysql后
show variables like 'char%'
show variables like 'coll%'
set names utf8;
show vairables like 'char%' //查看编码,发现已经更改
//也可以通过 set *** utf8 进行更改
//先,查看一下数据库格式,发现不对,修改数据库字符格式
show create database test; //
alter database test character set utf8;
//看一下表结构,不对,改
show create table content;
alter table content character set utf8;
//修改content表的字段
//alter table <表名> change <字段名> <字段名> <格式> character set utf8;
alter table content change user user varchar(255) character set utf8;
发现以上更改无用更改mysql配置文件
docker exec -it v-mysql /bin/bash //进入容器
find / -name my.cnf //从根目录搜索my.cnf ,我没有找到 /etc/mysql/conf.d/my.cnf进行全局搜索
//发现文件地址 /etc/my.cnf,退出容器
exit
docker ps //复制容器id
docker cp e8923fsdf823:/etc/my.cnf /etc
//修改my.cnf
vim /etc/my.cnf
//按i进行插入修改,就是一堆default-set-character =utf8 之类
//将文件上传到容器
docker cp /etc/my.cnf e8923fsdf823:/etc
//进入mysql查看
docker exec -it v-mysql mysql -u root -p
show variables like 'char%' //发现更改
发现以上更改无用,继续修改,加上这条,解决
//修改连接配置
jdbc:mysql://localhost:3306/XXX?useUnicode=true&characterEncoding=utf-8