MYSQL字符集設置的方法詳解(終端的字符集)
每次利用終端 創(chuàng)建數(shù)據(jù)庫或者創(chuàng)建表的時候,字符集都是latin1,或者進行插入值的時候,顯示的是亂碼(不指定字符集的時候)如下:
查看當前數(shù)據(jù)庫的字符集
character_set_client:客戶端請求數(shù)據(jù)的字符集
character_set_connection:客戶機/服務器連接的字符集
character_set_database:默認數(shù)據(jù)庫的字符集,無論默認數(shù)據(jù)庫如何改變,都是這個字符集;如果沒有默認數(shù)據(jù)庫,那就使用 character_set_server指定的字符集,這個變量建議由系統(tǒng)自己管理,不要人為定義。
character_set_filesystem:把os上文件名轉(zhuǎn)化成此字符集,即把 character_set_client轉(zhuǎn)換character_set_filesystem, 默認binary是不做任何轉(zhuǎn)換的
character_set_results:結果集,返回給客戶端的字符集
character_set_server:數(shù)據(jù)庫服務器的默認字符集
character_set_system:系統(tǒng)字符集,這個值總是utf8,不需要設置。這個字符集用于數(shù)據(jù)庫對象(如表和列)的名字,也用于存儲在目錄表中的函數(shù)的名字。
查看當前數(shù)據(jù)庫的校對規(guī)則
show variables like 'collation%';
參數(shù)文件中,client,mysql以及mysqld中都設置了utf8mb4字符集,但是沒有設置collation相關參數(shù)
collation_connection 當前連接的字符集。
collation_database 當前日期的默認校對,每次用USE語句來“跳轉(zhuǎn)”到另一個數(shù)據(jù)庫的時候,這個變量的值就會改變。如果沒有當前數(shù)據(jù)庫,這個變量的值就是collation_server變量的值。
collation_server 服務器的默認校對。
排序方式的命名規(guī)則為:字符集名字_語言_后綴,其中各個典型后綴的含義如下:
1)_ci:不區(qū)分大小寫的排序方式
2)_cs:區(qū)分大小寫的排序方式
3)_bin:二進制排序方式,大小比較將根據(jù)字符編碼,不涉及人類語言,因此_bin的排序方式不包含人類語言
create database rommel default charset utf8 collate utf8_romanian_ci;
參數(shù)文件中[mysqld]添加以下
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
進行數(shù)據(jù)庫的重啟后測試。
一系列測試,修改成功。
所以在安裝的時候,就要進行參數(shù)修改,不可能安裝好了在對數(shù)據(jù)庫進行編譯, 如果生產(chǎn)不能進行數(shù)據(jù)庫的重啟,除了新建每張表和數(shù)據(jù)庫指定寫死之外,就只能臨時指定字符集了。
臨時指定:
SET character_set_client = utf8mb4;
SET character_set_connection = utf8mb4;
SET character_set_database = utf8mb4;
SET character_set_results = utf8mb4;
SET character_set_server = utf8mb4;
總結
到此這篇關于MYSQL字符集設置(終端的字符集)的文章就介紹到這了,更多相關MYSQL字符集設置(終端的字符集)內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持本站!
版權聲明:本站文章來源標注為YINGSOO的內(nèi)容版權均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權,請聯(lián)系alex-e#qq.com處理。