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