欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Mysql創(chuàng)建視圖中文亂碼如何修改docker里的配置

 更新時間:2023年10月24日 10:50:50   作者:wysghmbb  
這篇文章主要介紹了Mysql創(chuàng)建視圖中文亂碼如何修改docker里的配置,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧

問題現(xiàn)象:

創(chuàng)建的視圖查詢無數(shù)據(jù),查看創(chuàng)建語句得知,where條件里的中文變成了“???”。

在客戶端里查詢字符編碼:

show VARIABLES like '%char%';

就是character_set_server導(dǎo)致的,它配置的竟然不是utf8,因為他默認(rèn)就是這個latin1!
踩坑記錄:
我在客戶端寫了個這個命令:

set  character_set_server ='utf8';

表面上再次查詢編碼確實是變成utf8了,實際上根本不起作用,重啟mysql服務(wù)也不會起作用!
解決辦法:
我的這個mysql是用docker啟動的,所以先登錄服務(wù)器,找到容器

docker ps -a

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

進入容器里,修改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 ,要不然沒法進入容器,繼續(xù)操作可就是服務(wù)器上的文件了(我這樣干過,還疑惑為啥重啟不生效,(ˉ▽ˉ;)…)

修改my.cnf文件,在[mysqld]下方加上配置:

character_set_server=utf8
init_connect='SET NAMES utf8'

劃重點:一定要在[mysqld]下方加,要不然可能不會生效!
原因:配置文件中的啟動選項被劃分為若干個組,每個組有一個組名,用中括號[]擴起來。
參考文章:mysql配置文件的使用

踩坑記錄:
因為容器里沒有vim和vi命令,突發(fā)奇想使用了echo 命令直接往文件后面追加,也沒有注意到?jīng)]放在[mysqld]組下面,所以重啟后配置一直不生效。
使用echo命令的話:

echo "xxx" >> a.txt ——把xxx追加到a.txt文件最后面
echo "xxx" > a.txt ——把xxx覆蓋到a.txt文件里

所以最后意識到以后,使用了>才得以糾正。

重啟mysql服務(wù)

我使用的是docker命令重啟的服務(wù),主從服務(wù)器分別重啟:

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

到此這篇關(guān)于Mysql創(chuàng)建視圖中文亂碼如何修改docker里的配置的文章就介紹到這了,更多相關(guān)Mysql創(chuàng)建視圖中文亂碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論