docker中mysql中文亂碼

手把手教你如何在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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章