程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 對MySQL中字符集的相干設置操作的根本教程

對MySQL中字符集的相干設置操作的根本教程

編輯:MySQL綜合教程

對MySQL中字符集的相干設置操作的根本教程。本站提示廣大學習愛好者:(對MySQL中字符集的相干設置操作的根本教程)文章只能為提供參考,不一定能成為您想要的結果。以下是對MySQL中字符集的相干設置操作的根本教程正文


1、檢查字符集相干變量

mysql> show variables like 'character%';

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

| 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文件中的表構造界說的字符集為新字符集
(3)、導出一切記載

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

        –quick:改訊息用於轉儲年夜的表。它強迫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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved