国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

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

2024-07-24 13:08:36
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了對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


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 通化县| 双鸭山市| 麻栗坡县| 元谋县| 莱阳市| 鄂州市| 长沙县| 镇宁| 沐川县| 阿勒泰市| 平舆县| 登封市| 和平县| 宾川县| 乐昌市| 成武县| 怀宁县| 津市市| 富平县| 乐都县| 玉溪市| 安龙县| 名山县| 县级市| 娱乐| 曲阳县| 潮州市| 福州市| 临猗县| 泗水县| 本溪市| 视频| 平谷区| 剑阁县| 泽州县| 海晏县| 垣曲县| 界首市| 乐山市| 察雅县| 读书|