centos系统搭建docker容器里mysql出现一堆问号解决方案

最终解决方案地址

早上起来,重新将原本的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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章