怎么在docker容器的mysql的編碼格式變為utf8


第一個方法:

1、  編輯MySql的配置文件

MySql的配置文件Windows下一般在系統目錄下或者在MySql的安裝目錄下名字叫my.ini,可以搜索,Linux下一般是/etc/my.cnf

 

--在 [mysqld] 標簽下加上以下內容:

default-character-set = utf8

character_set_server = utf8

注意:如果此標簽下已經存在“default-character-set=GBK”類似的內容,只需修改即可。

--在 [mysql]  標簽下加上一行

default-character-set = utf8

 

--在 [mysql.server]標簽下加上一行

default-character-set = utf8

 

--在 [mysqld_safe]標簽下加上一行

default-character-set = utf8

 

--在 [client]標簽下加上一行

default-character-set = utf8

 

2、  重新啟動MySql服務

Windows可在服務管理器中操作,也可使用命令行:

net stop mysql 回車

net start mysql 回車

服務名可能不一定為mysql,請按自己的設置

 

Linux下面可是用 service mysql restart

 

第二個方法:

設置外部訪問的編碼

set names "utf8";

然后查看表中的中文是否改變,好像只是暫時改變的。

 

第三個方法:

手把手教你如何在mysql 中使用中文編碼

1.首先在docker中拉取好一個最新的mysql鏡像以后,創建一個容器:

docker run  -d -p 13306:3306 -e MYSQL_ROOT_PASSWORD=xxxxxx--name MYDB mysql

  

參數的解釋:

  • -d 設置detach為true
  • -p port 映射端口 13306
  • -e environment 設置密碼 xxxxx

2. docker ps 查看mysql容器是否啟動,進去容器

docker exec -ti xxx(容器id) /bin/bash

理論上應該啟動正常 進去容器內部

3.查看mysql密碼 是否正常

mysql -u root -p

在提示下輸入密碼 xxxxx 正常情況下,應該出現以下提示符mysql>

!!重點來了!!

1.前期工作 查看當前mysql字符集情況

mysql>SHOW VARIABLES LIKE 'character_set_%';//查看數據庫字符集

基本上都如下圖所示:默認就是瑞典latin1 

SHOW VARIABLES LIKE 'collation_%';

圖上的第一個 connection 就是我們通過workbench等客戶端連接的時候指定的編碼。 
外部訪問數據亂碼的問題就出在這個connection連接層上

1.先解決外部訪問數據亂碼的問題

SET NAMES 'utf8';

它相當於下面的三句指令:

SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;

2.創建數據庫,創建表的時候,包括設置字段的時候也要加上字符集設置:

例如

create database MYDB character set utf8;

use JSPDB;
create table  t_product(
pid     varchar(20),
pname    varchar(20),
price    double,
address   varchar(30)
) DEFAULT CHARSET=utf8;

3.如果你應經有建立了數據庫,也可以通過以下語句修改字符集

當然 如果是剛剛建容器的時候 我想你肯定是沒有數據庫的,所有此步跳過

alter database name character set utf8;#修改數據庫成utf8的.
alter table type character set utf8;#修改表用utf8.
alter table type modify type_name varchar(50) CHARACTER SET utf8;#修改字段用utf8

4.這一步是很重要的來修改配置文件

mysql容器的配置文件在哪呢? 
我們進去容器。不輸入mysql -u root -p(即登錄數據庫) 
配置文件在etc/mysql/mysql.conf.d/mysql.cnf這個文件里頭 

我們找到這個文件 編輯他vi mysql.cnf,在使用docker容器時鍵入vim命令時提示: 
vim: command not found 
這個時候就需要安裝vim 
這時候需要敲:

apt-get update

等更新完畢以后再敲命令:

apt-get install vim

然后你發現vim 編輯器可以使用以后,在此文件中添加如下字段 
在 [mysqld] 標簽下加上三行

default-character-set = utf8
character_set_server = utf8

在 [mysql] 標簽下加上一行

default-character-set = utf8

在 [mysql.server]標簽下加上一行

default-character-set = utf8

在 [mysqld_safe]標簽下加上一行

default-character-set = utf8

在 [client]標簽下加上一行

default-character-set = utf8

修改結果如下:

那么如何檢驗成功了呢?

還記得我們怎么檢查mysql字符集編碼的嗎 ?

SHOW VARIABLES LIKE 'character_set_%';

我們發現有很多都變成utf8了

SHOW VARIABLES LIKE 'collation_%';

以上基本的工作都做完了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM