Mysql創(chuàng)建視圖中文亂碼如何修改docker里的配置
問(wèn)題現(xiàn)象:
創(chuàng)建的視圖查詢無(wú)數(shù)據(jù),查看創(chuàng)建語(yǔ)句得知,where條件里的中文變成了“???”。

在客戶端里查詢字符編碼:
show VARIABLES like '%char%';

就是character_set_server導(dǎo)致的,它配置的竟然不是utf8,因?yàn)樗J(rèn)就是這個(gè)latin1!
踩坑記錄:
我在客戶端寫了個(gè)這個(gè)命令:
set character_set_server ='utf8';
表面上再次查詢編碼確實(shí)是變成utf8了,實(shí)際上根本不起作用,重啟mysql服務(wù)也不會(huì)起作用!
解決辦法:
我的這個(gè)mysql是用docker啟動(dòng)的,所以先登錄服務(wù)器,找到容器:
docker ps -a

溫馨提示(踩坑記錄):注意要加-a查詢所有的容器,要不然如果容器Exited狀態(tài)就查不到它了,比如:

進(jìn)入容器里,修改my.cnf文件
備注:Windows系統(tǒng)里的mysql,其配置文件叫做my.ini;Linux系統(tǒng)里的mysql,其配置文件叫做my.cnf,一般存放在 /etc/my.cnf或者/etc/mysql/my.cnf路徑下。
docker exec -it 2654b151f48c /bin/bash

踩坑記錄:一定要加上-it ,要不然沒(méi)法進(jìn)入容器,繼續(xù)操作可就是服務(wù)器上的文件了(我這樣干過(guò),還疑惑為啥重啟不生效,(ˉ▽ˉ;)…)
修改my.cnf文件,在[mysqld]下方加上配置:
character_set_server=utf8 init_connect='SET NAMES utf8'
劃重點(diǎn):一定要在[mysqld]下方加,要不然可能不會(huì)生效!
原因:配置文件中的啟動(dòng)選項(xiàng)被劃分為若干個(gè)組,每個(gè)組有一個(gè)組名,用中括號(hào)[]擴(kuò)起來(lái)。
參考文章:mysql配置文件的使用
踩坑記錄:
因?yàn)槿萜骼餂](méi)有vim和vi命令,突發(fā)奇想使用了echo 命令直接往文件后面追加,也沒(méi)有注意到?jīng)]放在[mysqld]組下面,所以重啟后配置一直不生效。
使用echo命令的話:
echo "xxx" >> a.txt ——把xxx追加到a.txt文件最后面 echo "xxx" > a.txt ——把xxx覆蓋到a.txt文件里
所以最后意識(shí)到以后,使用了>才得以糾正。
重啟mysql服務(wù)
我使用的是docker命令重啟的服務(wù),主從服務(wù)器分別重啟:

再次用客戶端查看編碼,已經(jīng)是utf8了,服務(wù)上創(chuàng)建的視圖也沒(méi)有出現(xiàn)亂碼情況:

到此這篇關(guān)于Mysql創(chuàng)建視圖中文亂碼如何修改docker里的配置的文章就介紹到這了,更多相關(guān)Mysql創(chuàng)建視圖中文亂碼內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySql利用父id遞歸向下查詢子節(jié)點(diǎn)的方法實(shí)例
項(xiàng)目中遇到一個(gè)需求,要求查處菜單節(jié)點(diǎn)的所有節(jié)點(diǎn),在網(wǎng)上查了一下,大多數(shù)的方法用到了存儲(chǔ)過(guò)程,由于線上環(huán)境不能隨便添加存儲(chǔ)過(guò)程,所以自己寫一個(gè),這篇文章主要給大家介紹了關(guān)于MySql利用父id遞歸向下查詢子節(jié)點(diǎn)的相關(guān)資料,需要的朋友可以參考下2022-03-03
win10 下安裝 mysql 5.7.14 詳細(xì)圖文教程
本文通過(guò)文字和圖片相結(jié)合的形式給大家介紹了win10 下安裝 mysql 5.7.14的教程的,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09
MySQL 中 HAVING 子句的深度解析與實(shí)戰(zhàn)攻略
本文深入解析MySQL中HAVING子句的使用,HAVING用于分組后過(guò)濾,它作用于GROUP BY分組后的結(jié)果集,允許我們基于聚合函數(shù)的結(jié)果進(jìn)行條件篩選,感興趣的朋友跟隨小編一起看看吧2025-10-10
mysql數(shù)據(jù)庫(kù)之count()函數(shù)和sum()函數(shù)用法及區(qū)別說(shuō)明
這篇文章主要介紹了mysql數(shù)據(jù)庫(kù)之count()函數(shù)和sum()函數(shù)用法及區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06
MySQL數(shù)據(jù)庫(kù)優(yōu)化與定期數(shù)據(jù)處理策略
在當(dāng)今數(shù)據(jù)驅(qū)動(dòng)的時(shí)代,數(shù)據(jù)庫(kù)作為信息存儲(chǔ)和管理的核心,扮演著至關(guān)重要的角色,本文將探討如何通過(guò)一系列有效的策略來(lái)優(yōu)化 MySQL 數(shù)據(jù)庫(kù)的查詢效率,并實(shí)現(xiàn)定期處理數(shù)據(jù)的機(jī)制,以確保主表中的數(shù)據(jù)保持在合理范圍內(nèi),需要的朋友可以參考下2025-03-03
mysql sql語(yǔ)句隱藏手機(jī)號(hào)碼中間四位的方法
這篇文章主要為大家詳細(xì)介紹了mysql sql語(yǔ)句隱藏手機(jī)號(hào)碼中間四位的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02
mysql中關(guān)于覆蓋索引的知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家整理的是一篇關(guān)于mysql中關(guān)于覆蓋索引的知識(shí)點(diǎn)總結(jié)內(nèi)容,有需要的朋友們學(xué)習(xí)參考下。2020-08-08

