程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 解決mysql數據庫大小寫敏感問題

解決mysql數據庫大小寫敏感問題

編輯:MySQL綜合教程


解決mysql數據庫大小寫敏感問題   今天在部署java項目到linux服務器上去的時候出現了個小問題,數據庫是mysql,項目在我本地(windows環境下)是沒問題的。
  錯誤信息:2012-09-06 00:01:29,314 INFO [org.springframework.jdbc.datasource.JdbcTransactionObjectSupport]  - <JDBC 3.0 Savepoint class is available>   2012-09-06 00:01:29,903 WARN [org.hibernate.util.JDBCExceptionReporter]  - <SQL Error: 1146, SQLState: 42S02>  www.2cto.com   2012-09-06 00:01:29,903 ERROR [org.hibernate.util.JDBCExceptionReporter]  - <Table 'mobilesys.T_UUU' doesn't exist>   開始以為是配置文件配錯了,改了幾遍,還是同樣的問題,於是上網找原因,結果發現是數據庫配置問題。
  主要原因是:“MySQL 中,數據庫和表其實就是數據目錄下的目錄和文件,因而,操作系統的敏感性決定數據庫和表命名的大小寫敏感。這就意味著數據庫和表名在 Windows 中是大小寫不敏感的,而在大多數類型的 Unix/Linux 系統中是大小寫敏感的。   MySQL大小寫敏感可以通過配置文件的lower_case_table_names參數來控制。
  WINDOWS: 編輯MySQL安裝目錄下的my.ini 文件,在[mysqld]節下 添加 lower_case_table_names=0 (備注:為0時大小寫敏感,為1時大小寫不敏感,默認為1),可以實現MySql按照建表Sql語句的大小寫狀態來定義表名。  www.2cto.com   LINUX: 編輯/etc/my.cnf文件,在[mysqld]節下 添加 lower_case_table_names=1 參數,並設置相應的值 (備注:為0時大小寫敏感,為1時大小寫不敏感,默認為0)。”(引用網上文章中的句子)。   當然,這樣雖然解決了問題,但是,把大小寫敏感去掉的話,也不是一件好事,肯定會存有很多隱患....最好還是修改映射文件中的table屬性對應的值,將裡面的表名和數據庫中的表名大小寫一樣。這樣做感覺合理一點...

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved