windows下mysql表名不自動轉換小寫配置
阿新 • • 發佈:2019-01-27
mysql5.6版本配置檔案有兩個
1.預設的配置在program files/MySQL/MySQL Server 5.6/my-default.ini
2.一個在programData/MySQL/MySQL Server 5.6/my.ini
注意需要配置第二個的my.ini新增
[mysqld]
lower_case_table_names=2
重啟MySQL即可
引文:
windows 和linux對大小寫的敏感性不同而導致的。資料庫和表名在
Windows 中是大小寫不敏感的 ,而在大多數型別的 Unix 系統中是大小寫敏感的
[mysqld]
lower_case_table_names=2
set-variable=lower_case_table_names=0
port= 3306
注: 1 表示不區分大小寫 2表示區分大小寫
然後重啟mysqld伺服器 ,在xampp重啟mysqld服務可以通過xampp目錄下的mysql_start.bat重啟mysqld服務後,命令列進入mysql,要確認已經把 lower_case_table_names值改成2了
mysql> show variables like '%low%'; +------------------------+---------+ | Variable_name | Value | +------------------------+---------+ | log_slow_queries | OFF | | low_priority_updates | OFF | | lower_case_file_system | ON | | lower_case_table_names | 2 | | max_allowed_packet | 1047552 | | slow_launch_time | 2 | +------------------------+---------+ 6 rows in set (0.06 sec) 再次匯入product.sql 發現已 經可以區分大小寫=========================================================
Linux平臺的tips
原來LINUX下面預設安裝MYSQL後:區分表明的大小寫,不區分列名的大小寫。
又不能阻止HIBERNATE生成大小寫固定的SQL,就只有修改MYSQL的配置啦,修改如下:
vi /etc/mysql/my.cnf
在[mysqld]後新增
lower_case_table_names=1
重啟MYSQL服務
其中配置檔案
lower_case_table_names=0 區分大小寫
lower_case_table_names=1 不區分大小寫
MYSQL在LINUX下資料庫名、表名、列名、別名大小寫規則如下:
1.資料庫名與表名是嚴格區分大小寫的
2.表的別名是嚴格區分大小寫的
3.列名與列的別名在所有的情況下均是忽略大小寫的
4.變數名也是嚴格區分大小寫的
MYSQL在WINDOWS下都不區分大小寫