Linux系統下不讓MySQL區分表名的大小寫解決辦法,linuxmysql

來源:互聯網
上載者:User

Linux系統下不讓MySQL區分表名的大小寫解決辦法,linuxmysql
問題描述:

今天將某項目資料庫移植到liunix伺服器上,結果出現無法找到表的錯誤,查詢資料庫,表確實是存在的。經過分析比較,發現是表名大小寫問題導致。

問題分析:

MySQL資料庫的表名在Linux系統下是嚴格區分大小寫,在Windows系統下開發的程式移植到Linux系統下,如果程式中SQL語句沒有嚴格按照大小寫訪問資料庫表,就可能會出現找不到表的錯誤。

解決辦法:

修改MySQL的設定檔my.cnf,在[mysqld]部分添加如下配置選項lower_case_table_names = 1,重啟MySQL服務即可。


建議:

但這個辦法治標不治本,根本的解決辦法是遵從跨平台開發的好的實踐,例如SQL語句中的庫名、表名、欄位名等等要嚴格區分大小寫,與資料庫中的庫名、表名、欄位名的大小寫完全符合上,這樣就會增強程式的可移植性。避免修改部署目標環境的配置,如果目標環境部署了其它的應用,就可能會造成其它應用不起作用。

 

注意

Icon

MySQL在Linux下資料庫名、表名、列名、別名大小寫規則是這樣的:

1、資料庫名與表名是嚴格區分大小寫;
2、表的別名是嚴格區分大小寫;
3、列名與列的別名在所有的情況下均是忽略大小寫;
4、變數名也是嚴格區分大小寫;

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.