溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

mysql運(yùn)維中l(wèi)ower_case_table_names是什么意思

發(fā)布時(shí)間:2021-09-14 10:39:10 來(lái)源:億速云 閱讀:431 作者:小新 欄目:MySQL數(shù)據(jù)庫(kù)

這篇文章主要介紹了mysql運(yùn)維中l(wèi)ower_case_table_names是什么意思,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

1 簡(jiǎn)介
   在MySQL中,數(shù)據(jù)庫(kù)對(duì)應(yīng)數(shù)據(jù)目錄中的目錄。數(shù)據(jù)庫(kù)中的每個(gè)表至少對(duì)應(yīng)數(shù)據(jù)庫(kù)目錄中的一個(gè)文件(也可能是多個(gè),取決于存儲(chǔ)引擎)。因此,所使用操作系統(tǒng)的大小寫(xiě)敏感性決定了數(shù)據(jù)庫(kù)名和表名的大小寫(xiě)敏感性。
   在大多數(shù)Unix中數(shù)據(jù)庫(kù)名和表名對(duì)大小寫(xiě)敏感,而在Windows中對(duì)大小寫(xiě)不敏感。一個(gè)顯著的例外情況是Mac OS X,它基于Unix但使用默認(rèn)文件系統(tǒng)類型(HFS+),對(duì)大小寫(xiě)不敏感。然而,Mac OS X也支持UFS卷,該卷對(duì)大小寫(xiě)敏感,就像Unix一樣。
   變量lower_case_file_system說(shuō)明是否數(shù)據(jù)目錄所在的文件系統(tǒng)對(duì)文件名的大小寫(xiě)敏感。ON說(shuō)明對(duì)文件名的大小寫(xiě)不敏感,OFF表示敏感。

例如在windows下查看:

mysql運(yùn)維中l(wèi)ower_case_table_names是什么意思

說(shuō)明windows系統(tǒng)對(duì)大小寫(xiě)不敏感,mysql也默認(rèn)設(shè)置為對(duì)大小寫(xiě)不敏感。

2 大小寫(xiě)區(qū)分規(guī)則
   linux下:
   數(shù)據(jù)庫(kù)名與表名是嚴(yán)格區(qū)分大小寫(xiě)的;
   表的別名是嚴(yán)格區(qū)分大小寫(xiě)的;
   列名與列的別名在所有的情況下均是忽略大小寫(xiě)的;
   變量名也是嚴(yán)格區(qū)分大小寫(xiě)的;
   windows下:
   都不區(qū)分大小寫(xiě)
   Mac OS下(非UFS卷):
   都不區(qū)分大小寫(xiě)

3 參數(shù)說(shuō)明(lower_case_table_names)
   unix下lower_case_table_names默認(rèn)值為 0 .Windows下默認(rèn)值是 1 .Mac OS X下默認(rèn)值是 2 .

參數(shù)值

解釋
0使用CREATE TABLE或CREATE DATABASE語(yǔ)句指定的大小寫(xiě)字母在硬盤上保存表名和數(shù)據(jù)庫(kù)名。名稱比較對(duì)大小寫(xiě)敏感。在大小寫(xiě)不敏感的操作系統(tǒng)如windows或Mac OS x上我們不能將該參數(shù)設(shè)為0,如果在大小寫(xiě)不敏感的文件系統(tǒng)上將--lowercase-table-names強(qiáng)制設(shè)為0,并且使用不同的大小寫(xiě)訪問(wèn)MyISAM表名,可能會(huì)導(dǎo)致索引破壞。
1表名在硬盤上以小寫(xiě)保存,名稱比較對(duì)大小寫(xiě)不敏感。MySQL將所有表名轉(zhuǎn)換為小寫(xiě)在存儲(chǔ)和查找表上。該行為也適合數(shù)據(jù)庫(kù)名和表的別名。該值為Windows的默認(rèn)值。
2表名和數(shù)據(jù)庫(kù)名在硬盤上使用CREATE TABLE或CREATE DATABASE語(yǔ)句指定的大小寫(xiě)字母進(jìn)行保存,但MySQL將它們轉(zhuǎn)換為小寫(xiě)在查找表上。名稱比較對(duì)大小寫(xiě)不敏感,即按照大小寫(xiě)來(lái)保存,按照小寫(xiě)來(lái)比較。注釋:只在對(duì)大小寫(xiě)不敏感的文件系統(tǒng)上適用! innodb表名用小寫(xiě)保存。

4 由大小寫(xiě)敏感轉(zhuǎn)換為不敏感方法
   如果原來(lái)所建立庫(kù)及表都是對(duì)大小寫(xiě)敏感的,想要轉(zhuǎn)換為對(duì)大小寫(xiě)不敏感,主要需要進(jìn)行如下3步:
   1.將數(shù)據(jù)庫(kù)數(shù)據(jù)通過(guò)mysqldump導(dǎo)出。
   2.在my.cnf中更改lower_case_tables_name = 1,并重啟mysql數(shù)據(jù)庫(kù)。
   3.將導(dǎo)出的數(shù)據(jù)導(dǎo)入mysql數(shù)據(jù)庫(kù)。

5 注意事項(xiàng)
   為了避免大小寫(xiě)引發(fā)的問(wèn)題,一種推薦的命名規(guī)則是:在定義數(shù)據(jù)庫(kù)、表、列的時(shí)候全部采用小寫(xiě)字母加下劃線的方式,不使用任何大寫(xiě)字母
   在任何系統(tǒng)中可以使用lower_case_tables_name=1。使用該選項(xiàng)的不利之處是當(dāng)使用SHOW TABLES或SHOW DATABASES時(shí),看不出名字原來(lái)是用大寫(xiě)還是小寫(xiě)。
   請(qǐng)注意在Unix中如果以前l(fā)ower_case_tables_name = 0將lower_case_tables_name設(shè)置為1之前,重啟mysqld之前,必須先將舊的數(shù)據(jù)庫(kù)名和表名轉(zhuǎn)換為小寫(xiě)。

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“mysql運(yùn)維中l(wèi)ower_case_table_names是什么意思”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI