中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL字符集的概念及設置方法

發布時間:2021-08-21 22:53:59 來源:億速云 閱讀:126 作者:chen 欄目:MySQL數據庫

本篇內容介紹了“MySQL字符集的概念及設置方法”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

一、字符集基本概念
1.字符(Character)是指人類語言中最小的表義符號。例如’A'、’B'等;
2.給定一系列字符,對每個字符賦予一個數值,用數值來代表對應的字符,這一數值就是字符的編碼(Encoding)。例如,我們給字符’A'賦予數值0,給字符’B'賦予數值1,則0就是字符’A'的編碼;
3.給定一系列字符并賦予對應的編碼后,所有這些字符和編碼對組成的集合就是字符集(Character Set)。例如,給定字符列表為{’A',’B'}時,{’A'=>0, ‘B’=>1}就是一個字符集;
4.字符序(Collation)是指在同一字符集內字符之間的比較規則;
5.確定字符序后,才能在一個字符集上定義什么是等價的字符,以及字符之間的大小關系;
6.每個字符序唯一對應一種字符集,但一個字符集可以對應多種字符序,其中有一個是默認字符序(Default Collation);
7.MySQL中的字符序名稱遵從命名慣例:以字符序對應的字符集名稱開頭;以_ci(表示大小寫不敏感)、_cs(表示大小寫敏感)或_bin(表示按編碼值比較)結尾。例如:在字符序“utf8_general_ci”下,字符“a”和“A”是等價的;

二、MySQL默認字符集
MySQL對于字符集的指定可以細化到一個數據庫,一張表,一列.傳統的程序在創建數據庫和數據表時并沒有使用那么復雜的配置,它們用的是默認的配置.
    (1)編譯MySQL 時,指定了一個默認的字符集,這個字符集是 latin1;
    (2)安裝MySQL 時,可以在配置文件 (my.ini) 中指定一個默認的的字符集,如果沒指定,這個值繼承自編譯時指定的;
    (3)啟動mysqld 時,可以在命令行參數中指定一個默認的的字符集,如果沒指定,這個值繼承自配置文件中的配置,此時 character_set_server 被設定為這個默認的字符集;
    (4)安裝 MySQL選擇多語言支持,安裝程序會自動在配置文件中把default_character_set 設置為 UTF-8,保證缺省情況下所有的數據庫所有表的所有列的都用 UTF-8 存儲。

三、MySQL字符集設置
1.系統變量:
– character_set_server:默認的內部操作字符集
– character_set_client:客戶端來源數據使用的字符集
– character_set_connection:連接層字符集
– character_set_results:查詢結果字符集
– character_set_database:當前選中數據庫的默認字符集
– character_set_system:系統元數據(字段名等)字符集
– 還有以collation_開頭的同上面對應的變量,用來描述字符序。

2.用introducer指定文本字符串的字符集:
– 格式為:[_charset] ’string’ [COLLATE collation]
– 例如:
       SELECT _latin1 ’string’;
       SELECT _utf8 ‘你好’ COLLATE utf8_general_ci;
– 由introducer修飾的文本字符串在請求過程中不經過多余的轉碼,直接轉換為內部字符集處理。

四、修改my.cnf設置客戶端與服務端字符集
1.停止MySQL;service mysqld stop

2.備份my.cnf文件:cp /etc/my.cnf /etc/my.cnf.bak

修改my.cnf
vi /etc/my.cnf
在[client]下添加,client為控制客戶端
default-character-set=utf8
在[mysqld]下添加,mysqld為控制服務器
default-character-set=utf8

3.重啟MySQL
  spark220:mysqladmin:/usr/local/mysql:>service mysqld restart

4.查看字符集是否已經修改
  mysql>show variables like '%char%';

注:修改配置文件,并重啟服務器,才可以永久生效

五、檢測字符集
mysql> SHOW CHARACTER SET;
mysql> SHOW COLLATION;
mysql> SHOW VARIABLES LIKE 'character%';
mysql> SHOW VARIABLES LIKE 'collation%';
mysql> SQL函數HEX、LENGTH、CHAR_LENGTH
mysql> SQL函數CHARSET、COLLATION

  MySQL的字符集主要是兩個概念,一個是Character Sets,一個是Collations,前者是字符內容及編碼,后者是對前者進行比較操作的一些規則。這兩個參數集可以在數據庫實例、單個數據庫、表、列等四個級別指定。對于使用者來說,一般推薦使用utf8編碼來存儲數據。而要解決亂碼問題,不單單是MySQL數據的存儲問題,還和用戶的程序文件的編碼方式、用戶程序和MySQL數據庫的連接方式都有關系。
客戶端的連接是沒有作用的,客戶端這時候一般需要指定utf8方式連接才能避免亂碼。也就是傳說總的set names命令。
set names utf8命令對應的是服務器端以下幾個命令:
  SET character_set_client = utf8;
  SET character_set_results = utf8;
  SET character_set_connection = utf8;
注:三個參數是不能寫在配置文件my.cnf里的,只能通過set命令來動態修改,但在init_connect里設置,這個命令在每
個普通用戶連接上來的時候都會觸發執行,可以在[mysqld]部分增加以下一行設置連接字符集:
在[mysqld]下添加:
  init_connect = 'SET NAMES utf8'

總結:
1、編譯安裝MySQL的時候指定兩個參數使用utf8編碼。
2、配置文件my.cnf設定兩個參數,同時設置init_connect參數。
3、配置文件my.cnf設定兩個參數,同時客戶端的連接指定set names命令。
4、配置文件my.cnf里的client和server處加入default-character-set參數方便管理。

“MySQL字符集的概念及設置方法”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

星座| 越西县| 山东省| 卢湾区| 汉寿县| 饶平县| 洛阳市| 凌海市| 和田县| 黔西县| 贵溪市| 富川| 英山县| 交城县| 榆中县| 武宣县| 安庆市| 德庆县| 凤翔县| 包头市| 蛟河市| 年辖:市辖区| 惠东县| 宜宾市| 遂宁市| 富宁县| 龙胜| 太保市| 堆龙德庆县| 平谷区| 五寨县| 阿拉尔市| 会宁县| 华蓥市| 宁德市| 乌拉特前旗| 桐乡市| 陵水| 古丈县| 固阳县| 汝城县|