《Mysql必讀linux下Mysq表名的大小寫問題解析》要點:
本文介紹了Mysql必讀linux下Mysq表名的大小寫問題解析,希望對您有用。如果有疑問,可以聯系我們。
MYSQL入門在linux系統中,mysql數據庫的庫名、表名、列名、別名大小寫規則:
1、數據庫名與表名是嚴格區分大小寫的;
2、表的別名是嚴格區分大小寫的;
3、列名與列的別名在所有的情況下均是忽略大小寫的;
4、變量名也是嚴格區分大小寫的;
?
MySQL在Windows下都不區分大小寫.
MYSQL入門因此,在不同操作系統中為了能使程序和數據庫都能正常運行,最好的方法是在設計的時候都轉為小寫,但是如果在設計的時候已經規范化大小寫了,那么在Windows環境下只要對數據庫的配置做下改動就行了,具體操作如下:
MYSQL入門在MySQL的配置文件中my.ini [mysqld] 中增加一行
lower_case_table_names = 1
參數解釋:
0:區分大小寫
1:不區分大小寫
在 MySQL 中,數據庫和表對就于那些目錄下的目錄和文件.因而,操作系統的敏感性決定數據庫和表命名的大小寫敏感.這就意味著數據庫和表名在 Windows 中是大小寫不敏感的,而在大多數類型的 Unix 系統中是大小寫敏感的.
MYSQL入門奇怪的是列名與列的別名在所有的情況下均是忽略大小寫的,而表的別名又是區分大小寫的.
MYSQL入門要避免這個問題,你最好在定義數據庫命名規則的時候就全部采用小寫字母加下劃線的組合,而不使用任何的大寫字母.
MYSQL入門或也可以強制以 -O lower_case_table_names=1 參數啟動 mysqld(如果使用 --defaults-file=...my.cnf 參數來讀取指定的配置文件啟動 mysqld 的話,你需要在配置文件的 [mysqld] 區段下增加一行 lower_case_table_names=1).
MYSQL入門這樣MySQL 將在創建與查找時將所有的表名自動轉換為小寫字符(這個選項缺省地在 Windows 中為 1 ,在 Unix 中為 0.從 MySQL 4.0.2 開始,這個選項同樣適用于數據庫名).
MYSQL入門當更改這個選項時,必須在啟動 mysqld 前首先將老的表名轉換為小寫字母.
MYSQL入門即如果希望在數據庫里面創建表的時候保留大小寫字符狀態,則應該把這個參數置0: lower_case_table_names=1 .
否則,同樣的sqldump腳本在不同的操作系統下最終導入的結果不一樣(在Windows下所有的大寫字符都變成小寫了).
?
問題:
在LINUX下調一個程序總提示找不到表,明明是建了表的,在MYSQL的命令行下也可以查到,為什么程序就找不到表呢?
MYSQL入門原來是LINUX下的MYSQL默認是要區分表名大小寫.
MYSQL入門讓MYSQL不區分表名大小寫的辦法:
1,用ROOT登錄,修改/etc/my.cnf
2,在[mysqld]下加入一行:lower_case_table_names=1
3,重啟mysql數據庫,使配置生效:service mysqld restart
維易PHP培訓學院每天發布《Mysql必讀linux下Mysq表名的大小寫問題解析》等實戰技能,PHP、MYSQL、LINUX、APP、JS,CSS全面培養人才。