<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
       :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    [轉載]MySQL字符集設定總結

    Posted on 2009-08-13 11:57 WANGPENG 閱讀(218) 評論(0)  編輯  收藏 所屬分類: DataBase

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

    1.和存儲有關的
    服務器字符集 (@@character_set_server)
    庫字符集
    (@@character_set_database)
    表字符集

    字段字符集

    character_set_server: 服務器安裝時指定的默認字符集設定.
    character_set_database
    : 數據庫服務器中某個庫使用的字符集設定,如果建庫時沒有指明,將使用服務器安裝時指定的字符集設置.
    character_s
    ystem: 數據庫系統使用的字符集設定.

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

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

    2.和傳輸有關的
    @@
    character_set_connection
    @@character_set_results
    @@character_set_client

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

    character_set_client:
    客戶端使用的字符集,相當于網頁中的字符集設置

    3.字符集的校對規則
    字符集的校對規則設定分別由上面的
    character_set_connection, character_set_database, character_set_server決定

    collation_connection: 連接字符集的校對規則
    collation_database
    :
    默認數據庫使用的校對規則.當默認數據庫改變時服務器則設置該變量.如果沒有默認數據庫,變量的值同collation_server
    collation_server: 服務器的默認校對規則

    以上內容中character_set_client,character_set_connection,character_set_results受客戶端默認字符集影響,其中php編譯mysql模塊時的默認字符集同樣也受到它鏈接的mysql動態庫影響,從而影響到phpcharacter_set_connection, character_set_client設定.當默認字符集不是utf8時,設置my.cnf

    [mysqld]
    default-character-set=utf8

    default-collation=utf8_general_ci

    default-character-set只能改變對存儲層(server,database,table,column,system)的設定,對于客戶端和服務器端的通訊層沒有任何影響.
    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

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

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

    主站蜘蛛池模板: 亚洲成色在线影院| 最新中文字幕免费视频| 久久久久国产成人精品亚洲午夜| 中文字幕无码精品亚洲资源网久久| 5g影院5g天天爽永久免费影院| 亚洲精选在线观看| 最近免费中文字幕大全免费 | 亚洲黄片毛片在线观看| 立即播放免费毛片一级| 全部免费毛片免费播放| 青青草国产免费国产是公开| 亚洲AV蜜桃永久无码精品| 一区二区三区在线免费| 亚洲中文字幕无码久久2017| 在线成人精品国产区免费| 亚洲三级电影网址| 国产精品成人免费视频网站京东 | 亚洲国产高清国产拍精品| 国产一区二区视频免费| 一个人看的在线免费视频| 亚洲大成色www永久网站| 精品免费久久久久久久| 亚洲精品无码日韩国产不卡av| mm1313亚洲精品国产| 中文字幕免费在线看电影大全| 亚洲国产一区二区a毛片| 免费电视剧在线观看| 添bbb免费观看高清视频| 狠狠色伊人亚洲综合成人| 亚洲香蕉免费有线视频| 亚洲AV成人一区二区三区观看| 亚洲无线一二三四区手机| 99国产精品免费观看视频| 亚洲另类无码专区首页| 久久精品亚洲男人的天堂| 日韩精品无码一区二区三区免费| 亚洲成人激情小说| 亚洲宅男天堂在线观看无病毒| 国产免费一区二区三区| 一个人看的免费观看日本视频www| 久久久久久久综合日本亚洲 |