linux系統下MySQL表名區分大小寫問題

來源:互聯網
上載者:User

標籤:Edito   roo   alt   window   mysql   表結構   報錯   opp   cat   

 問題如下:

比如中的PERSON表,查詢SQL語句中如果表名是小寫,就會報錯說person表不存在。

因為Linux環境下的MySQL資料庫的表名預設是區分大小寫,可以查看Linux上的MySQL的設定檔/etc/my.cnf:

[[email protected]_219_131_centos tomcat7]# cat /etc/my.cnf [mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysql# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid[[email protected]_219_131_centos tomcat7]# 

如果要使用資料庫表名不區分大小寫話,就需要在[mysqld]下面添加一行配置,即 lower_case_table_names=1:

[[email protected]_219_131_centos tomcat7]# vi /etc/my.cnf [mysqld]lower_case_table_names=1datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sockuser=mysql# Disabling symbolic-links is recommended to prevent assorted security riskssymbolic-links=0[mysqld_safe]log-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pid

網上對該項配置的說明:

lower_case_table_names參數詳解:其中 0:區分大小寫,1:不區分大小寫MySQL在Linux下資料庫名、表名、列名、別名大小寫規則是這樣的:1、資料庫名與表名是嚴格區分大小寫;2、表的別名是嚴格區分大小寫;3、列名與列的別名在所有的情況下均是忽略大小寫;4、變數名也是嚴格區分大小寫;MySQL在Windows下都不區分大小寫。3、如果想在查詢時區分欄位值的大小寫,則:欄位值需要設定BINARY屬性,設定的方法有多種:A、建立時設定:CREATE TABLE T(A VARCHAR(10) BINARY);B、使用alter修改:ALTER TABLE`tablename` MODIFY COLUMN `cloname` VARCHAR(45) BINARY;C、mysql tableeditor中直接勾選BINARY項。

修改完配置之後,一定要重啟資料庫:

[[email protected]_219_131_centos tomcat7]# service mysqld restartStopping mysqld:  [  OK  ]Starting mysqld:  [  OK  ]

然後使用Navicat工具重新串連MySQL資料庫,重新查詢perosn表,這時發現不管查詢SQL語句中的表名是大寫還是小寫都提示找不到person表了。

原因是修改配置之後,會導致原來的大寫的表名PERSON無法識別,所以這一點要特別注意。

解決辦法是:

(1)在修改配置之前一定先將所有表的表結構和表資料匯出做備份;

(2)刪除原來的表;

(3)修改配置;

(4)將表結構和表資料匯入。

按照上面的步驟操作之後,重新查詢person表,表名就不區分大小寫了。

 

 

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.