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