Mysql創(chuàng)建視圖中文亂碼如何修改docker里的配置
問題現(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)文章
MySQL?中的?SQL_MODE?設(shè)置方法ANSI_QUOTES?選項解析與應(yīng)用小結(jié)
sql_mode是?MySQL?中的一個系統(tǒng)變量,用于控制?SQL?語句的解析和執(zhí)行方式,它由多個選項組成,每個選項都可以獨立設(shè)置,以滿足不同的應(yīng)用場景需求,這篇文章主要介紹了MySQL?中的?SQL_MODE?設(shè)置:ANSI_QUOTES?選項解析與應(yīng)用2024-12-12mysql插入重復(fù)數(shù)據(jù)的處理(DUPLICATE、IGNORE、REPLACE)
這篇文章主要介紹了mysql插入重復(fù)數(shù)據(jù)的處理方式(DUPLICATE、IGNORE、REPLACE),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09MySQL性能優(yōu)化配置參數(shù)之thread_cache和table_cache詳解
這篇文章主要介紹了MySQL性能優(yōu)化配置參數(shù)之thread_cache和table_cache詳解,THREAD_CACHE是Mysql的連接池,table_cache指定表高速緩存的大小,需要的朋友可以參考下2014-07-07利用MySQL統(tǒng)計一列中不同值的數(shù)量方法示例
這篇文章主要給大家介紹了利用MySQL統(tǒng)計一列中不同值的數(shù)量的幾種解決方法,每種方法都給了詳細的示例代碼供大家參考學(xué)習(xí),相信對大家具有一定的參考價值,需要的朋友們下面跟隨小編一起來看看吧。2017-04-04mysql中insert并發(fā)問題(on?DUPLICATE?KEY?UPDATE)
本文主要介紹了mysql中insert并發(fā)問題(on?DUPLICATE?KEY?UPDATE),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01Navicat修改MySQL數(shù)據(jù)庫密碼的多種方法
這篇文章主要介紹了Navicat修改MySQL數(shù)據(jù)庫密碼,需要的朋友可以參考下2018-09-09