mysql表名忽略大小寫

jopen 10年前發布 | 12K 次閱讀 MySQL 數據庫服務器

查看大小寫區分
mysql> show variables like "%case%";
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_file_system | OFF   | 
| lower_case_table_names | 0     | 
+------------------------+-------+
2 rows in set (0.00 sec)




今天郁悶死了,在LINUX下調一個程序老說找不到表,但是我明明是建了表的,在MYSQL的命令行下也可以查到,為什么程序就找不到表呢?
  后來請教了一個老師才搞定,原來是LINUX下的MYSQL默認是要區分表名大小寫的,哎,弄了那么舊,害死我了。
  讓MYSQL不區分表名大小寫的方法其實很簡單:
  1.用ROOT登錄,修改/etc/my.cnf
  2.在[mysqld]下加入一行:lower_case_table_names=1
  3.重新啟動數據庫即可


今天測試的時候,遇到一些問題,明明看到數據,就是查不出來;后來發現,在linux下,mysql的表名區分大小寫,而在windows下是不區分,從windows下導出的數據腳本中使用的是小寫,
而Hibernate生成的sql中表名是大寫的,所以查不出數據。
google了一些資料,修改mysql的一個參數就可以了,如下:
在ubuntu下,/etc/mysql/my.cnf文件中
[mysqld]的后面加
lower_case_table_names=1 
0,區分大小寫; 1,不區分
好像還有說在/etc/my.cnf,在ubuntu下,這個不能使用。
然后重啟mysql
sudo /etc/init.d/mysql restart
注:(下面內容摘自網上)
MYSQL在LINUX下數據庫名、表名、列名、別名大小寫規則如下: 
1.數據庫名與表名是嚴格區分大小寫的 
2.表的別名是嚴格區分大小寫的 
3.列名與列的別名在所有的情況下均是忽略大小寫的 
4.變量名也是嚴格區分大小寫的

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!