MYSQL字符集設(shè)置的方法詳解(終端的字符集)
前言
每次利用終端 創(chuàng)建數(shù)據(jù)庫(kù)或者創(chuàng)建表的時(shí)候,字符集都是latin1,或者進(jìn)行插入值的時(shí)候,顯示的是亂碼(不指定字符集的時(shí)候)如下:
查看當(dāng)前數(shù)據(jù)庫(kù)的字符集
character_set_client:客戶端請(qǐng)求數(shù)據(jù)的字符集
character_set_connection:客戶機(jī)/服務(wù)器連接的字符集
character_set_database:默認(rèn)數(shù)據(jù)庫(kù)的字符集,無(wú)論默認(rèn)數(shù)據(jù)庫(kù)如何改變,都是這個(gè)字符集;如果沒(méi)有默認(rèn)數(shù)據(jù)庫(kù),那就使用 character_set_server指定的字符集,這個(gè)變量建議由系統(tǒng)自己管理,不要人為定義。
character_set_filesystem:把os上文件名轉(zhuǎn)化成此字符集,即把 character_set_client轉(zhuǎn)換character_set_filesystem, 默認(rèn)binary是不做任何轉(zhuǎn)換的
character_set_results:結(jié)果集,返回給客戶端的字符集
character_set_server:數(shù)據(jù)庫(kù)服務(wù)器的默認(rèn)字符集
character_set_system:系統(tǒng)字符集,這個(gè)值總是utf8,不需要設(shè)置。這個(gè)字符集用于數(shù)據(jù)庫(kù)對(duì)象(如表和列)的名字,也用于存儲(chǔ)在目錄表中的函數(shù)的名字。
查看當(dāng)前數(shù)據(jù)庫(kù)的校對(duì)規(guī)則
show variables like 'collation%';
參數(shù)文件中,client,mysql以及mysqld中都設(shè)置了utf8mb4字符集,但是沒(méi)有設(shè)置collation相關(guān)參數(shù)
collation_connection 當(dāng)前連接的字符集。
collation_database 當(dāng)前日期的默認(rèn)校對(duì),每次用USE語(yǔ)句來(lái)“跳轉(zhuǎn)”到另一個(gè)數(shù)據(jù)庫(kù)的時(shí)候,這個(gè)變量的值就會(huì)改變。如果沒(méi)有當(dāng)前數(shù)據(jù)庫(kù),這個(gè)變量的值就是collation_server變量的值。
collation_server 服務(wù)器的默認(rèn)校對(duì)。
排序方式的命名規(guī)則為:字符集名字_語(yǔ)言_后綴,其中各個(gè)典型后綴的含義如下:
1)_ci:不區(qū)分大小寫(xiě)的排序方式
2)_cs:區(qū)分大小寫(xiě)的排序方式
3)_bin:二進(jìn)制排序方式,大小比較將根據(jù)字符編碼,不涉及人類語(yǔ)言,因此_bin的排序方式不包含人類語(yǔ)言
create database rommel default charset utf8 collate utf8_romanian_ci;
參數(shù)文件中[mysqld]添加以下
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
進(jìn)行數(shù)據(jù)庫(kù)的重啟后測(cè)試。
一系列測(cè)試,修改成功。
所以在安裝的時(shí)候,就要進(jìn)行參數(shù)修改,不可能安裝好了在對(duì)數(shù)據(jù)庫(kù)進(jìn)行編譯, 如果生產(chǎn)不能進(jìn)行數(shù)據(jù)庫(kù)的重啟,除了新建每張表和數(shù)據(jù)庫(kù)指定寫(xiě)死之外,就只能臨時(shí)指定字符集了。
臨時(shí)指定:
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;
總結(jié)
到此這篇關(guān)于MYSQL字符集設(shè)置(終端的字符集)的文章就介紹到這了,更多相關(guān)MYSQL字符集設(shè)置(終端的字符集)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
SQL筆記之?dāng)?shù)據(jù)庫(kù)結(jié)構(gòu)優(yōu)化方式
這篇文章主要介紹了SQL筆記之?dāng)?shù)據(jù)庫(kù)結(jié)構(gòu)優(yōu)化方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01MySQL MaxCompute與AnalyticDB實(shí)現(xiàn)數(shù)據(jù)處理與轉(zhuǎn)換過(guò)程詳解
AnalyticDB MySQL(簡(jiǎn)稱ads)與 MaxCompute(簡(jiǎn)稱odps)進(jìn)行數(shù)據(jù)轉(zhuǎn)換時(shí),個(gè)別語(yǔ)法有差別,記錄下來(lái),方便備查,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-12-12MySQL?中的count(*)?與?count(1)?誰(shuí)更快一些?
這篇文章主要討論MySQL?中?count(*)?與?count(1)?誰(shuí)更快一些?以下討論基于?InnoDB?存儲(chǔ)引擎,并且再文末單獨(dú)說(shuō)一下MyISAM?,感興趣的小伙伴可以參考一下2022-02-02Mysql計(jì)算字段長(zhǎng)度函數(shù)之CHAR_LENGTH函數(shù)
mysql中計(jì)算字符串長(zhǎng)度有兩個(gè)函數(shù)分別為char_length和length,char_length函數(shù)可以計(jì)算unicode字符,下面這篇文章主要給大家介紹了關(guān)于Mysql計(jì)算字段長(zhǎng)度函數(shù)之CHAR_LENGTH函數(shù)的相關(guān)資料,需要的朋友可以參考下2023-05-05MySQL從庫(kù)維護(hù)經(jīng)驗(yàn)分享
這篇文章主要介紹了MySQL從庫(kù)維護(hù)經(jīng)驗(yàn)分享,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下2020-11-11關(guān)于MySQL的存儲(chǔ)過(guò)程與存儲(chǔ)函數(shù)
存儲(chǔ)過(guò)程是在大型數(shù)據(jù)庫(kù)系統(tǒng)中,一組為了完成特定功能的SQL?語(yǔ)句集(這些SQL語(yǔ)句已經(jīng)編譯過(guò)了),它存儲(chǔ)在數(shù)據(jù)庫(kù)中,一次編譯后永久有效,需要的朋友可以參考下2023-05-05基于一致性hash算法(consistent hashing)的使用詳解
本篇文章對(duì)一致性hash算法(consistent hashing)的使用進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下2013-05-05