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

來源:互聯網
上載者:User

標籤:跨平台   資料庫   mysql   無法找到表   

問題描述:

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

問題分析:

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

解決辦法:

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


建議:

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

 

注意

Icon

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

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

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.