qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          CentOS下無法正常獲取MySQL數據庫表數據的問題

           之前,由于客戶要求在centOS下安裝系統應用,因此有機會接觸了一下CentOS,順便也了解了下CentOS的常規操作,還有在CentOS下的MySQL相關操作。

            目前技術框架使用JSF(richfaces、facelets)+Spring+JPA(OpenJPA),不使用數據庫依賴的觸發器或存儲過程,所有業務邏輯在web服務器上執行,因此數據庫基本不用考慮移植問題。但是本來在windows下運行正常的系統,在linux下卻沒法獲取一些表的內容。由于數據庫的初始化,最初只是體現在幾個需要手工維護的表數據上,最終卻發現原來是因為數據庫表名大小寫的問題!

            具體操作過程:

            1、在windows下,使用MySQL的客戶端工具“Navicat”,將當前的數據庫導出到test.sql文件中。說明:導出的.sql文件中,所有的表名都是小寫。

            2、將導出的.sql文件拷貝至linux下,導入需要使用的數據庫中

            3、啟動web服務器,訪問服務。問題出現:許多表無法訪問。

             4、在mysql中使用“show tables;”命令,發現表名有重復,重復的表名區別在于大小寫,大寫的表名與對應的實體bean名相同。找到問題:表名大小寫造成的數據無法訪問。 (linux 下的 MySQL 安裝完后,默認區分表名的大小寫,不區分列名的大小寫;Windows下默認不區分大小寫 )

            上述問題有兩種解決方案:

            ● 在JPA的實體bean的聲明中,使用“Table”的“name”屬性,指定表名,表名盡量全部使用小寫,不同單詞之間使用下劃線連接

            例如:

          @Table(name="sys_user")

            ● 使用Linux下MySQL的相關參數,使MySQL不區分大小寫( lower_case_table_names=1 )

            上述兩種方法,第一種是較為通用的解決方案,但是需要開發人員更改全部的實體bean,然后重新編譯;第二種方案適合于系統已經進入生產環境的狀況,并且對如何修改linux下的MySQL配置需要一定的專業知識及經驗,對實施人員技術要求較高。

            關于如何修改CentOS下的MySQL不區分大小寫的具體操作方法:

            用 root 帳號登錄后,在 /etc/my.cnf 中的 [mysqld] 后添加添加 lower_case_table_names=1 ,重啟Mysqld 服務。服務重新啟動之后,已設置成功:不區分表名的大小寫

            關于lower_case_table_names 參數詳解: lower_case_table_names參數有兩個值:[0、1 ]其中0 :區分大小寫,1 :不區分大小寫

            補充說明:

            關于持久層,使用Spring自動生成的DDL來創建對應的持久層數據庫表及索引等數據,簡化實施工作的復雜度

          posted on 2012-09-07 10:14 順其自然EVO 閱讀(928) 評論(1)  編輯  收藏

          評論

          # re: CentOS下無法正常獲取MySQL數據庫表數據的問題 2013-06-28 10:01 qiurc

          給力!
          修改后果然可以了。  回復  更多評論   


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2012年9月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          30123456

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 惠水县| 阿合奇县| 永仁县| 佛坪县| 竹北市| 八宿县| 台山市| 灵石县| 华池县| 大悟县| 清河县| 开平市| 津南区| 成都市| 卢龙县| 十堰市| 和平县| 北京市| 嵊泗县| 射洪县| 华亭县| 宣武区| 称多县| 绍兴市| 衡水市| 新巴尔虎左旗| 开化县| 灵宝市| 扎兰屯市| 张家港市| 萝北县| 洛南县| 韶山市| 三河市| 乐昌市| 临洮县| 兴隆县| 屯昌县| 海门市| 岗巴县| 阿拉善左旗|