. mysql中重要的字符集問題,如果沒有統一會產生亂碼問題。這個是mysqldb與sql servser不同的地方。mysql伺服器中有六個關鍵位置使用了字符集的概念,他們是:client、connection、database、results、server、system
a、其中client是客戶端使用的字符集
b、其中的connection是連線資料庫的字符集設定型別
c、database是資料庫伺服器中某個庫使用的字符集設定,如果建庫時沒有指明,將使用伺服器安裝時指定的字符集設定
d、results是資料庫給客戶端返回時使用的字符集設定,如果沒有指明,使用伺服器預設的字符集
e、server是伺服器安裝時指定的預設字符集設定
f、 system是資料庫系統使用的字符集設定,預設的就是utf8。
這裡我們規定所有的字符集統一設定為utf8
先檢視當前系統的字符集可以用命令:show variables like'character_set_%';
這樣你可以看到當前伺服器的字符集設定。這裡我們可以通過更改mysql的配置檔案來設定資料庫的預設的字符集,修改my.cnf (linux下)
在[client]段中加入default-character-set=utf8
在[mysqld]段中加入default-character-set=utf8
然後重啟mysql ;
讓我們再次檢視一下mysql此時的字符集:
此時就可以統一字符集了!這個是在一台新的db中這樣設定就可以了! 如果是在已經存在的資料庫中存在字符集問題,則需要將資料dump出來,然後再重新匯入。這裡把指令碼備註一下:
備註一:
小結:這裡建立資料庫時最好指定字符集: de>create database `database` default character set utf8 collate utf8_general_cide>de>。 這裡只是簡單的說明一下:注重原理,另外用不同客戶端連線資料庫的時候最好都指定字符集。這樣就不會出現亂碼的問題了。de>2. 資料庫中大小寫的問題:現在很多mysql db都是跑在linux伺服器下面的,linux是嚴格區分大小寫的。而大多數開發環境中大家用的都是windows ,windows因為面向的主題物件是操作使用者,對大小寫不敏感,也不區分大小寫。這樣就會出現在開發環境上執行的程式到測試環境中無法通過的尷尬境地。(本人被這個問題折騰了很久)這裡我們可以通過修改mysql的配置檔案來達到在windows下面也區分大小寫,來解決這個問題,設定的方法很簡單,在
[mysqld]
設定lower_case_table_names = 0
mysql字符集大小寫 深入Mysql字符集設定
根據chaos wang的ppt整理而成,在此再次感謝chaos wang的此次techtalk 基本概念 字元 character 是指人類語言中最小的表義符號。例如 a b 等 給定一系列字元,對每個字元賦予乙個數值,用數值來代表對應的字元,這一數值就是字元的編碼 encoding 例如,我們給...
MySQL的字元大小寫
mysql在做字串比較時 比如密碼 發現大小寫是不區分的。這與字段的編碼有關。create table vpromanage user info username char 20 character setutf8 collate utf8 bin notnull password char 20 ...
mysql限制大小寫 mysql對大小寫的限制問題
今天研發人員問我,mysql對大小寫有限制嗎?我想都沒想,說沒限制。過了一會兒,研發人員告訴我說linux下是有限制的。我頓時有種打自己臉的感覺。對於自己不確定的問題,一定得想清楚,查明白了再說。在windows和mac os中,lower case tables name的預設值是1.如果只是在乙...