latin1(1和l的區別,l要么沒有缺缺,要么缺缺是向左的直的; 1向左的缺缺是彎曲的,應該是可以看得出來的)是8位的字符集,表示英文和西歐字母.
瑞士: Switzerland [swits2land], 瑞士人(的): Swiss.
Swedish: 瑞典的.
collate: collation: 整理,校對; 排序規則
MySQL默認的校對規則是 :latin_swedish_ci, 為什么是瑞典的呢? 因為他的創始人 Monty 就是瑞典的。
mysql中查詢等sql語句中的 通配符是 %. 在查詢語句中可以使用 like 'latin1%'
mysql中show...的內容很多, 可以查看很多內容:
show character set;
show collation like 'latin1%';
character: 字符集, collation: 整理規則, 字符集中字符的"比較規則","排序規則"
latin類字符集,相當於latin語系,包括四種latin1, latin2, 5, 7四種字符集, 相當於東方語系包括中文, 日文, 韓文等字符集
字符集並不完全等同於整理規則, 仔細想想差別還是挺明顯的. 而且同一個字符集可能有多個排序規則,如latin1 -> latin1_swedish_ci, latin_spanish_ci,...
因為一般很少指定collation,所以要指定一個 default collation.
ci: case insensitive 大小寫不敏感
cs: case sensitive 大小寫敏感
從 整理規則 可以知道 排序和比較的情況: 如utf8_general_ci: 表示字符集是utf8, 比較規則是general, ci是大小寫不敏感,所以注冊用戶名和郵件地址時要使用, 如
A和a, mysql認為是相同的. 而utf8_bin: 表示字符集是utf8, 而比較排序時,按二進制存儲和排序比較,則a和A是不同的. 也可以知道, 並不是所有的"整理"規則 都要
使用 ci.
show create table tablename; mysql顯示 "數據表" 的 默認的字符集是latin1(注意不是utf8): ...default charset=latin1
show full columns from tablename; 可以查看各個字段的 整理規則;
最完整的現實字符集的命令是: status; 可以顯示 默認的 windows平台下的 "服務器的字符集: latin1, db 字符集: latin1, connect字符集: gbk, client字符
集:gbk. "
也就是說, 從服務器,到數據庫, 到表 都可以指定 "字符集", 而字段卻不能指定字符集, 只能指定 "整理規則", (這個整理規則中就 可以認為 包含了 字段的字符集,
以及比較/排序 規則). 即使前3個層次的字符集默認的 都是 latin1, 但是 如果 字段的 "整理"為 gbk_chinese_ci的話, 也能正常顯示中文.
mysql的版本是5.5.8-log, 其中的log表示開啟了binlog功能, 有日志記錄和日志管理功能.
5.0以后的mysql版本,采用bin二進制的日志格式. show master logs; 命令可以查看當前有哪些日志文件; set sql_log_bin=0/1; 用來關閉/打開日志功能;
mysqlbinlog 日志文件...; 顯示查看日志.
日志文件: mysql-bin.index是日志文件 的清單; mysql-bin.000001, 是二進制文件,要用mydqlbinlog命令專門查看...
保證幾個方面:
- mysql的server db table 的字符集應該一致,且與中文兼容(能顯示中文,如gbk,gb2312,utf8, big5等等);
- 連接字符集同1, 包括: character_set_client = character_set_connection = charater_set_results = 兼容中文字符集之一; 可以用一個命令來解決: set names 'gbk/utf8/gb2312等', ===== set charset-names ...
- 表中的字段的 collation要設為 兼容中文之一, 且與1,2 相同.
當修改了 mysql服務器的1,2,后, 要重啟mysqld 服務!!
如果這個還不行, 就考慮 編輯器的 編碼字符集也同上1.
具體到上面的操作就是:
-
insert命令后面要加上 into 關鍵字才行;
-
要設置服務器和數據庫的字符集的命令是: set character_set_server='utf8' , 注意utf和8之間沒有橫線;set character_set_database='utf8'等等, 其他類似的變量都是同樣的設置。 但是這個設置好像只能生效一次, 要長期生效?????????????、
-
創建時,要設置表的字符集, 命令是 default charset=utf8 , 這里注意是charset, 是character set兩個單詞的縮寫, 不是兩個 單詞分開寫的!
-
mysql中 查看字符集和collation的命令是:
show charater set; show collation, 但是你要注意, 這個是系統提供的、在系統中有的, 可以設置的字符集和校驗, 但並不是當前server-db-table設置的字符集。
要查看當前機器上的數據庫字符集, 要使用 show variables;
但是, show variables查看的是所有的 當前數據庫系統正在運行的 變量包括字符集的設置, 所以,要查看其中某一些某一類的變量, 用like 來過濾, 如show variables like 'char%'... -
mysql的主配置命令, 是 etc下的 my.cnf, 注意是cnf, 不是config, 輔助配置文件目錄是: /etc/my.cnf.d, 而他的數據等實體放在: /var/share/mysql中, 里面有很多的內容和東西...