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.變量名也是嚴格區分大小寫的