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

 

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