mysql 大小寫敏感 lower_case_table_names

pxbibm發表於2018-02-05
 在MySQL中,資料庫對應資料目錄中的目錄。資料庫中的每個表至少對應資料庫目錄中的一個檔案(也可能是多個,取決於儲存引擎)。因此,所使用作業系統的大小寫敏感性決定了資料庫名和表名的大小寫敏感性。
    在大多數Unix中資料庫名和表名對大小寫敏感,而在Windows中對大小寫不敏感。一個顯著的例外情況是Mac OS X,它基於Unix但使用預設檔案系統型別(HFS+),對大小寫不敏感。然而,Mac OS X也支援UFS卷,該卷對大小寫敏感,就像Unix一樣。
    變數lower_case_file_system說明是否資料目錄所在的檔案系統對檔名的大小寫敏感。ON說明對檔名的大小寫不敏感,OFF表示敏感。

Mysql官方文件的介紹:

Value

Meaning

0

Table and database names are stored on disk using the lettercase specified in the CREATE TABLE orCREATE DATABASE statement. Name comparisons are case sensitive. You should not set this variable to 0 if you are running MySQL on a system that has case-insensitive file names (such as Windows or Mac OS X). If you force this variable to 0 with --lower-case-table-names=0 on a case-insensitive file system and access MyISAM tablenames using different lettercases, index corruption may result.

1

Table names are stored in lowercase on disk and name comparisons are not case sensitive. MySQL converts all table names to lowercase on storage and lookup. This behavior also applies to database names and table aliases.

2

Table and database names are stored on disk using the lettercase specified in the CREATE TABLE orCREATE DATABASE statement, but MySQL converts them to lowercase on lookup. Name comparisons are not case sensitive. This works only on file systems that are not case sensitive! InnoDB table names are stored in lowercase, as for lower_case_table_names=1.

 

預設為0,大小寫敏感。

設定1,大小寫不敏感。建立的表,資料庫都是以小寫形式存放在磁碟上,對於sql語句都是轉換為小寫對錶和DB進行查詢。

設定2,建立的表和DB依據語句上格式存放,凡是查詢都是轉換為小寫進行。

If you plan to set the lower_case_table_names system variable to 1 on Unix, you must first convert your old database and table names to lowercase before stopping mysqld and restarting it with the new variable setting. To do this for an individual table, use RENAME TABLE:

當想設定lower_case_table_names = 1時,在重啟資料庫例項之前就需要將原來的資料庫和錶轉換為小寫。

官方文件的解釋。要開啟lower_case_table_names = 1 。先要將大寫字母資料庫更改為小寫。否則將找不到資料庫名。

 所以要想忽略大小寫,還需要提前將大寫資料庫名更改小寫,否則報錯。資料庫名無法rename.可以新建一個小寫的資料庫名。
然後rename table 到新的資料庫,完成表的遷移。
在進行資料庫引數設定之前,需要掌握這個引數帶來的影響,切不可盲目設定。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12798004/viewspace-2150864/,如需轉載,請註明出處,否則將追究法律責任。

相關文章