1. 程式人生 > >windows下mysql表名不自動轉換小寫配置

windows下mysql表名不自動轉換小寫配置

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 系統中是大小寫敏感的

windows 下的解決方法: my.ini 裡面的mysqld部分
加入 lower_case_table_names=2 

[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下都不區分大小寫