<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忽略客戶端字符集

    主站蜘蛛池模板: 国产亚洲精品美女久久久久| 新最免费影视大全在线播放| 国产免费啪嗒啪嗒视频看看| 在线免费观看h片| 久久久久se色偷偷亚洲精品av | 亚欧洲精品在线视频免费观看 | 亚洲精品制服丝袜四区| 日韩亚洲国产高清免费视频| 直接进入免费看黄的网站| 久久精品国产亚洲AV果冻传媒| 成年女人毛片免费观看97| 久久国产乱子伦精品免费午夜 | 免费黄色福利视频| 美女被爆羞羞网站在免费观看| 亚洲av不卡一区二区三区| 国产免费黄色大片| 久久久久久久岛国免费播放| 精品亚洲视频在线| 亚洲最大黄色网站| 国内精品久久久久久久亚洲| 免费看无码自慰一区二区| 国产精品白浆在线观看免费| 国产成人亚洲精品91专区高清| 亚洲熟妇无码爱v在线观看| 久久亚洲中文字幕精品一区| 青娱乐免费在线视频| 久久国产免费观看精品| 亚洲av综合日韩| 亚洲成年人电影网站| 伊人久久大香线蕉亚洲| 特级淫片国产免费高清视频| 亚洲高清免费在线观看| 中文字幕不卡免费视频| 毛片亚洲AV无码精品国产午夜| 亚洲伊人色一综合网| 久久久亚洲欧洲日产国码农村| 亚洲国产成人久久综合碰| 免费看美女被靠到爽的视频| 中文免费观看视频网站| 久久久久久AV无码免费网站| 一级做受视频免费是看美女|