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

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值