溫馨提示×

溫馨提示×

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

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

MySQL大小寫敏感問題分析

發(fā)布時間:2021-11-11 16:44:22 來源:億速云 閱讀:193 作者:iii 欄目:MySQL數(shù)據(jù)庫

這篇文章主要介紹“MySQL大小寫敏感問題分析”,在日常操作中,相信很多人在MySQL大小寫敏感問題分析問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”MySQL大小寫敏感問題分析”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

〇 lower_case_file_system
    該參數(shù)是用于描述data目錄所在的操作系統(tǒng)是否為大小寫敏感,該參數(shù)為bool類型,但無法修改。
    0 -- 大小寫敏感 
    1 -- 大小寫不敏感

    比如跑在linux上的都是OFF或者0。

〇 lower_case_table_names
    該參數(shù)為靜態(tài),可設(shè)置為0、1、2。

0 -- 大小寫敏感。(Unix,Linux默認)
創(chuàng)建的庫表將原樣保存在磁盤上。如create database TeSt;將會創(chuàng)建一個TeSt的目錄,create table AbCCC ...將會原樣生成AbCCC.frm。
SQL語句也會原樣解析。

1 -- 大小寫不敏感。(Windows默認)
創(chuàng)建的庫表時,MySQL將所有的庫表名轉(zhuǎn)換成小寫存儲在磁盤上。
SQL語句同樣會將庫表名轉(zhuǎn)換成小寫。
如需要查詢以前創(chuàng)建的Test_table(生成Test_table.frm文件),即便執(zhí)行select * from Test_table,也會被轉(zhuǎn)換成select * from test_table,致使報錯表不存在。

2 -- 大小寫不敏感(OS X默認)
創(chuàng)建的庫表將原樣保存在磁盤上。
但SQL語句將庫表名轉(zhuǎn)換成小寫。

修改lower_case_table_names導(dǎo)致的常見不良隱患:
如果在lower_case_table_names=0時,創(chuàng)建了含有大寫字母的庫表,改為lower_case_table_names=1后,則會無法被查到。

注意事項:
將默認的lower_case_tables_name為0設(shè)置成1,需先將已經(jīng)存在的庫表名轉(zhuǎn)換為小寫

1)針對僅表名存在大寫字母的情況:
①、lower_case_tables_name=0時,執(zhí)行rename table成小寫。
②、設(shè)置lower_case_tables_name=1,重啟生效。

2)針對庫名存在大寫字母的情況:
①、lower_case_tables_name=0時,使用mysqldump導(dǎo)出,并刪除老的數(shù)據(jù)庫。
②、設(shè)置lower_case_tables_name=1,重啟生效。
③、導(dǎo)入數(shù)據(jù)至實例,此時包含大寫字母的庫名已轉(zhuǎn)換為小寫。

到此,關(guān)于“MySQL大小寫敏感問題分析”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

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

AI