MYSQL 字符集設置(終端的字符集)

每次利用終端 建立數據庫或者建立表的時候,字符集都是latin1,或者進行插入值的時候,顯示的是亂碼(不指定字符集的時候)以下:mysql

 

 

查看當前數據庫的字符集sql

character_set_client:客戶端請求數據的字符集
character_set_connection:客戶機/服務器鏈接的字符集
character_set_database:默認數據庫的字符集,不管默認數據庫如何改變,都是這個字符集;若是沒有默認數據庫,那就使用 character_set_server指定的字符集,這個變量建議由系統本身管理,不要人爲定義。
character_set_filesystem:把os上文件名轉化成此字符集,即把 character_set_client轉換character_set_filesystem, 默認binary是不作任何轉換的數據庫

character_set_results:結果集,返回給客戶端的字符集
character_set_server:數據庫服務器的默認字符集
character_set_system:系統字符集,這個值老是utf8,不須要設置。這個字符集用於數據庫對象(如表和列)的名字,也用於存儲在目錄表中的函數的名字。服務器


查看當前數據庫的校對規則    函數

show variables like 'collation%';測試

 參數文件中,client,mysql以及mysqld中都設置了utf8mb4字符集 ,可是沒有設置collation相關參數編碼

 

collation_connection 當前鏈接的字符集。
collation_database 當前日期的默認校對,每次用USE語句來「跳轉」到另外一個數據庫的時候,這個變量的值就會改變。若是沒有當前數據庫,這個變量的值就是collation_server變量的值。
collation_server 服務器的默認校對。server

排序方式的命名規則爲:字符集名字_語言_後綴,其中各個典型後綴的含義以下:
1)_ci:不區分大小寫的排序方式
2)_cs:區分大小寫的排序方式
3)_bin:二進制排序方式,大小比較將根據字符編碼,不涉及人類語言,所以_bin的排序方式不包含人類語言
create database rommel default charset utf8 collate utf8_romanian_ci;對象

 參數文件中[mysqld]添加如下blog

[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci

進行數據庫的重啓後測試。

 

 

 

 

 

一系列測試,修改爲功。

因此在安裝的時候,就要進行參數修改,不可能安裝好了在對數據庫進行編譯, 若是生產不能進行數據庫的重啓,除了新建每張表和數據庫指定寫死以外,就只能臨時指定字符集了。

臨時指定:

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;

相關文章
相關標籤/搜索