對MySQL中字符集的相關設定操作的基本教程

2022-09-28 21:42:19 字數 2773 閱讀 9843

1、檢視字符集相關變數

mysql> show variables like 'character%';

+——————www.cppcns.com——–+——————————-+

| variable_name | value |

+————————–+——————————-+

| character_set_client | latin1 |

| character_set_connection | latin1 |

| character_set_database | latin1 |

| character_set_filesystem | binary |

| character_set_results | latin1 |

| character_set_server | latin1 |

| character_set_system | utf8 |

| character_sets_dir | c:\wamp\mysql\share\charsets\ |

+————————–+——————————-+

2、字符集轉換過程

客戶端——–字符集轉換器———–服務

gbk ————gbk-utf8-utf8———-utf8

gbk————-gbk-gbk-utf8———-utf8

客戶端要告訴服務端使用的編碼是什麼,然後沒有直接告訴伺服器而告訴「轉換器」

字符集轉換器收到客戶端資訊後檢視伺服器是什麼編碼,然後將客戶端傳來的字符集轉換成伺服器設定的字符集

伺服器向客戶端傳送資訊時也是先告訴「轉換器」

3、字符集變數解釋

character_set_client                     

客戶端字符集,連線mysql的客戶端程式的字符集,該變數告訴轉換器客戶端傳送的字符集。

character_set_connection

轉換器轉換要轉換成的字符集

character_set_server

服務端使用的字符集,存入資料時使用的字符集

character_set_results

查詢的結果是什麼編碼

推論:什麼時候會出現亂碼

1:client 什麼與實際不符,微軟命令提示符預設是gbk,如果設定成utf8就會出現亂碼

2:results與客戶端頁面不符的時候

什麼時候會丟失資料

connection和伺服器的字符集比client小時,會丟失資料,比如客戶端是utf8而轉換器是gbk

當客戶端是utf8 而服務端是 gbk時要設定

set character_set_client=utf8

set character_set_connection=gbk/utf8 這裡設定什麼都可以,因為最終轉換器會根據伺服器的型別進行轉換

set character_set_results=utf8

4、設定字符集變數

set names utf8     進入mysql設定所用的字符集

在my.conf中新增

[client]

default-character-set=utf8

[mysqld]

default-character-set=utf8

5.修改mysql字符集

將latin1字符集的資料庫修改成gbk字符集的資料庫的過程

(1)、匯出表結構

mysqldump -uroot -p –default-character-set=gbk -d database_name > createtable.sql

–default-character-set=gbk 表示以什麼字符集連線

-d 表示只匯出表結構,不匯出資料

(2)、修改createtable.sql檔案中的表結jywtf構定義的字符集為新字符集

(3)、匯出所有記錄

mysqldump -uroot -p –quick –no-create-info –extend-insert –default-character-set database_name > data.sql

–qui程式設計客棧ck:改訊息用於轉儲大的表。它強制mysqldump從伺服器一次一行的檢索表中的行二不是檢索所有行,並在輸出錢將它快取到記憶體中

–extended-insert:使用包括幾個values列表的多行insert語法。這樣轉儲檔案更小,過載檔案時可以加速插入

–no-create-info:不重新建立每個轉儲表的create table 語句

–default-character-set=latin1:安裝原有的字符集匯出所有資料,這樣匯出的檔案中,所有中文都是可見的,不會儲存成亂碼

(4)、頻寬data.sql,將set names latin1 修改成set names gabk

(5)、使用新的字符集建立新的資料庫

create database database_name default charset gbk;

(6)、建立表,執行createtable.sql

mysql -uroot -p database_name < createtable.sql

(7)、匯入資料,執行data.sql

mysql -uroot -p database_name < data.sql

本文位址: /shujuku/mysql/137846.html

MySQL對字符集 對MySQL字符集的認識

此文章主要向大家描述的是mysql字符集,你對mysql字符集的實際應用感興趣嗎?如果你對mysql字符集的實際應用感興趣的感興趣的話。你就可以以通過以下的文章對其進行了解,以下就是文章的詳細內容描述。在mysql 5.1.5 alpha下測試得出如下結論 latin1 1character 1by...

mysql字符集相關問題 MySQL 字符集問題

mysql 支援許多字符集及其編碼方案,甚至是不同編碼之間的轉換.在使用 mysql 進行應用程式程式設計時,常常會出現亂碼現象,這通常是由於客戶端沒有宣告與 mysql 伺服器通訊的字串編碼造成的後果.解決方案 設定變數 character set client 檢視當前資料庫的字符集 show ...

mysql字符集設定

show variables like char show variables like collation 2.修改編碼 set variable name value set character set connection utf8 3 顯示建立資料庫資訊 show create databa...