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...