<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

        Open source are the greatest wealth---WANGPENG
    posts - 46, comments - 11, trackbacks - 0, articles - 0
       :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

    MySQL(4.1以后版本) 服務(wù)器中有六個(gè)關(guān)鍵位置使用了字符集的概念,他們是:client connectiondatabaseresultsserver system.MySQL有兩個(gè)字符集概念:一個(gè)就是字符集本身,一個(gè)是字符集校驗(yàn)規(guī)則.字符集影響數(shù)據(jù)在傳輸和存儲(chǔ)過程中的處理方式,而字符集校驗(yàn)則影響ORDER BYGROUP BY這些排序方式.

    1.和存儲(chǔ)有關(guān)的
    服務(wù)器字符集 (@@character_set_server)
    庫字符集
    (@@character_set_database)
    表字符集

    字段字符集

    character_set_server: 服務(wù)器安裝時(shí)指定的默認(rèn)字符集設(shè)定.
    character_set_database
    : 數(shù)據(jù)庫服務(wù)器中某個(gè)庫使用的字符集設(shè)定,如果建庫時(shí)沒有指明,將使用服務(wù)器安裝時(shí)指定的字符集設(shè)置.
    character_s
    ystem: 數(shù)據(jù)庫系統(tǒng)使用的字符集設(shè)定.

    在創(chuàng)建一個(gè)表的時(shí)候,每個(gè)字段只要不是binary,都會(huì)有一個(gè)字符集.如果不指定,那么在SHOW CREATE TABLE的時(shí)候,它是不會(huì)顯示出來的.
    建表時(shí)候,字段字符集的選取方式如下:

    * if 字段指定的字符集
    * else if
    表指定的字符集
    * else if @@character_set_database
    * else @@character_set_server (
    如果沒有設(shè)定,這個(gè)值為latin1)

    2.和傳輸有關(guān)的
    @@
    character_set_connection
    @@character_set_results
    @@character_set_client

    character_set_connection: 連接數(shù)據(jù)庫的字符集設(shè)置類型,如果php沒有指明連接數(shù)據(jù)庫使用的字符集類型就按照服務(wù)器端默認(rèn)的字符設(shè)置
    character_set_results: 數(shù)據(jù)庫給客戶端返回時(shí)使用的字符集設(shè)定,如果沒有指明,使用服務(wù)器默認(rèn)的字符集

    character_set_client:
    客戶端使用的字符集,相當(dāng)于網(wǎng)頁中的字符集設(shè)置

    3.字符集的校對(duì)規(guī)則
    字符集的校對(duì)規(guī)則設(shè)定分別由上面的
    character_set_connection, character_set_database, character_set_server決定

    collation_connection: 連接字符集的校對(duì)規(guī)則
    collation_database
    :
    默認(rèn)數(shù)據(jù)庫使用的校對(duì)規(guī)則.當(dāng)默認(rèn)數(shù)據(jù)庫改變時(shí)服務(wù)器則設(shè)置該變量.如果沒有默認(rèn)數(shù)據(jù)庫,變量的值同collation_server
    collation_server: 服務(wù)器的默認(rèn)校對(duì)規(guī)則

    以上內(nèi)容中character_set_client,character_set_connection,character_set_results受客戶端默認(rèn)字符集影響,其中php編譯mysql模塊時(shí)的默認(rèn)字符集同樣也受到它鏈接的mysql動(dòng)態(tài)庫影響,從而影響到phpcharacter_set_connection, character_set_client設(shè)定.當(dāng)默認(rèn)字符集不是utf8時(shí),設(shè)置my.cnf

    [mysqld]
    default-character-set=utf8

    default-collation=utf8_general_ci

    default-character-set只能改變對(duì)存儲(chǔ)層(server,database,table,column,system)的設(shè)定,對(duì)于客戶端和服務(wù)器端的通訊層沒有任何影響.
    mysql> SHOW VARIABLES LIKE ‘character_set_%’;

    +————————–+—————————————————————————+
    | Variable_name| Value|
    +————————–+—————————————————————————+
    | character_set_client| latin1|
    | character_set_connection | latin1|
    | character_set_database| utf8|
    | character_set_filesystem | binary|
    | character_set_results| latin1|
    | character_set_server| utf8|

    | character_set_system| utf8

    解決字符集通訊設(shè)置不匹配的方法:
    (
    修改默認(rèn)的character_set_client,character_set_connection,character_set_result)

    1. 重新編譯mysqlphp,mysql加入編譯參數(shù) –default-character-set=utf8
    2.
    PHP程序在查詢數(shù)據(jù)庫之前,執(zhí)行mysql_query(”set names utf8;”);
    3.
    修改my.cnf,在[mysqld]中加入init-connect=”set names utf8” (對(duì)于超級(jí)用戶連接該選項(xiàng)無效)
    4.
    啟動(dòng)mysqld 加入?yún)?shù) –skip-character-set-client-handshake忽略客戶端字符集

    主站蜘蛛池模板: 成年女人免费视频播放体验区| 91精品国产亚洲爽啪在线观看| 男女免费观看在线爽爽爽视频| 国产精品成人免费观看| 亚洲中文无码永久免| 久久综合亚洲色一区二区三区| 色噜噜AV亚洲色一区二区| 亚洲国产韩国一区二区| 久久亚洲AV永久无码精品| 在线免费不卡视频| 999国内精品永久免费观看| 美女视频黄a视频全免费网站色窝| 亚洲精品熟女国产| 亚洲国产精品高清久久久| 亚洲成av人片不卡无码久久| 在线免费不卡视频| 毛片免费观看视频| 中文字幕无码成人免费视频| 国产免费福利体检区久久| 亚洲另类图片另类电影| 亚洲日本在线看片| 久久精品国产亚洲| 亚洲国产精品VA在线观看麻豆| 国产L精品国产亚洲区久久 | 亚洲成A人片在线观看无码不卡| 免费一级国产生活片| 国产成人免费A在线视频| 成年女人毛片免费播放人| 日本精品人妻无码免费大全| 69天堂人成无码麻豆免费视频| 久久www免费人成看片| 亚洲一区免费视频| 999久久久免费精品国产| 希望影院高清免费观看视频| 国产免费AV片在线播放唯爱网 | 亚洲va成无码人在线观看| 亚洲狠狠狠一区二区三区| 亚洲国产精品张柏芝在线观看| 亚洲国产日韩女人aaaaaa毛片在线| 亚洲精品mv在线观看| 亚洲娇小性xxxx|