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