【問題現象】
在windows系統中,有乙個mysql資料庫要遷移到linux系統中。在linux系統中安裝好了mysql之後,使用預設配置可以啟動資料庫。把windows系統中的mysql資料庫匯入之後,發現應用程式讀取不到資料,找不到表。使用show tables命令檢視,發現在windows系統中,表名為全小寫;在linux系統中,表名區分大小寫。
【問題原因】
mysql在linux下資料庫名、表名、列名、別名大小寫規則是這樣的:
1、資料庫名與表名是嚴格區分大小寫的;
2、表的別名是嚴格區分大小寫的;
3、列名與列的別名在所有的情況下均是忽略大小寫的;
4、變數名也是嚴格區分大小寫的;
mysql在windows下都不區分大小寫。
【解決方案】
用root帳號登入後,在/etc/my.cnf 中的[mysqld]後新增新增lower_case_table_names=1,重啟mysql服務,這時已設定成功:不區分表名的大小寫;
lower_case_table_names引數詳解:
lower_case_table_names = 1
其中 0:區分大小寫,1:不區分大小寫。
MySQL 表名大小寫問題
資料庫名與表名的規則相同 列名 索引 儲存過程 觸發器名在任何平台都不區分大小寫。檢視資料庫大小寫敏感設定 show variables like lower case table names 取值及含義 0 表名按照指定的大小寫儲存,查詢的時候區分大小寫 1 表名儲存小寫,查詢的時候都轉成小寫查詢...
MySql表名的大小寫問題
mysql在linux下資料庫名 表名 列名 別名大小寫規則是這樣的 1 資料庫名與表名是嚴格區分大小寫的 2 表的別名是嚴格區分大小寫的 3 列名與列的別名在所有的情況下均是忽略大小寫的 4 變數名也是嚴格區分大小寫的 mysql在windows下都不區分大小寫。所以在不同作業系統中為了能使程式和...
mysql 表名大小寫敏感問題
已有表 user select from user 可以查出來 select from user 報user不存在 這在一些orm框架裡可能會產生問題,比如預設使用大寫的表名,導致找不到表或者報錯 mysql表名大小寫再linux環境預設為敏感的 show variables like lower ...