Mysql的Table doesn't exist問(wèn)題及解決
Mysql Table doesn't exist問(wèn)題
程序連接Mysql的時(shí)候總是提示表不存在,Table 'xx.QRTZ_LOCKS' doesn't exist
查詢(xún)了下,數(shù)據(jù)庫(kù)明明是有這個(gè)表的,搞了許久,
網(wǎng)上據(jù)說(shuō)是因?yàn)閿?shù)據(jù)庫(kù)對(duì)表的大小寫(xiě)設(shè)置問(wèn)題,設(shè)置忽略大小寫(xiě)即可,
修改mysql數(shù)據(jù)庫(kù)配置
在服務(wù)運(yùn)行目錄找到my.ini或者my.cnf文件
打開(kāi)文件,找到[mysqld]在下面增加一行
lower_case_table_names=1 (0:大小寫(xiě)敏感;1:大小寫(xiě)不敏感)
重啟MySQL服務(wù)
Mysql: "Table 'xx.XXXX' doesn't exist"
當(dāng)通過(guò)Spring-Data JPA進(jìn)行數(shù)據(jù)庫(kù)查詢(xún)時(shí),后臺(tái)返回查詢(xún)語(yǔ)句,將查詢(xún)語(yǔ)句粘貼,到數(shù)據(jù)庫(kù)執(zhí)行.返回Table 'xx.XXXX' doesn't exist 提示數(shù)據(jù)庫(kù)沒(méi)有這張表.
嘗試解決
原因,服務(wù)器是Linux環(huán)境下,因此對(duì)數(shù)據(jù)庫(kù)表名大小寫(xiě)敏感,在使用別名時(shí)會(huì)出現(xiàn)查詢(xún)失敗.因此需要將數(shù)據(jù)庫(kù)配置文件進(jìn)行修改,使其大小寫(xiě)不敏感.
如果忘記了配置文件的位置,可以通過(guò)find / -name my.cnf進(jìn)行查找
在配置文件中,添加
# 是否允許數(shù)據(jù)對(duì)象不區(qū)分大小寫(xiě),0敏感,1敏感? lower_case_table_names=1
重啟mysql應(yīng)用后再試,問(wèn)題解決.
查看服務(wù)狀態(tài)
service mysqld status
重啟服務(wù)命令
service mysqld restart
如果就此解決,請(qǐng)忽略以下內(nèi)容…
以上方式僅支持尚未有數(shù)據(jù)表出現(xiàn)時(shí)修改,否則啟動(dòng)失敗.錯(cuò)誤日志
Different lower_case_table_names settings for server ('1') and data dictionary ('0').
Data Dictionary initialization failed.
lower_case_table_names 參數(shù)值
0 創(chuàng)建的數(shù)據(jù)庫(kù)對(duì)象,根據(jù)創(chuàng)建時(shí)指定大小寫(xiě)形式儲(chǔ)存,同時(shí)在比較區(qū)分大小寫(xiě)。如果你有不區(qū)分大小寫(xiě)的文件名(如Windows或Mac系統(tǒng))的系統(tǒng)上運(yùn)行MySQL這個(gè)變量設(shè)置為0。如果使用–lower-case-table-names=0 不區(qū)分大小寫(xiě)的文件系統(tǒng)強(qiáng)制此變量為0 并MyISAM使用不同的字母表訪問(wèn) 表名,則可能導(dǎo)致索引損壞。
1 表名以小寫(xiě)形式存儲(chǔ)在磁盤(pán)上,名稱(chēng)比較不區(qū)分大小寫(xiě)。MySQL在存儲(chǔ)和查找時(shí)將所有表名轉(zhuǎn)換為小寫(xiě)。
2 數(shù)據(jù)庫(kù)對(duì)象根據(jù)創(chuàng)建時(shí)指定的大小寫(xiě)形式存儲(chǔ)在磁盤(pán)上,但MySQL在查找時(shí)將它們轉(zhuǎn)換為小寫(xiě)。名稱(chēng)比較不區(qū)分大小寫(xiě)。這僅適用于不區(qū)分大小寫(xiě)的文件系統(tǒng)!
我的解決方式
向Oracle低頭,將表名改為大寫(xiě)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Mysql數(shù)據(jù)庫(kù)之sql基本語(yǔ)句小結(jié)
這篇文章主要介紹了Mysql數(shù)據(jù)庫(kù)之sql基本語(yǔ)句,結(jié)合實(shí)例形式總結(jié)分析了MySQL數(shù)據(jù)庫(kù)連接、登錄、查看以及數(shù)據(jù)庫(kù)、數(shù)據(jù)表等常見(jiàn)操作技巧,需要的朋友可以參考下2019-11-11vs如何讀取mysql中的數(shù)據(jù)并解決中文亂碼問(wèn)題
這篇文章主要介紹了vs如何讀取mysql中的數(shù)據(jù)并解決中文亂碼問(wèn)題,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09mysql #1062 –Duplicate entry ''1'' for key ''PRIMARY''
Mysql進(jìn)行數(shù)據(jù)備份,還原后進(jìn)行回帖,出現(xiàn)以下錯(cuò)誤代碼,其實(shí)主要是導(dǎo)入數(shù)據(jù)重復(fù)的問(wèn)題,將現(xiàn)在的數(shù)據(jù)表清空,重新導(dǎo)入即可2012-07-07MySQL學(xué)習(xí)記錄之KEY分區(qū)引發(fā)的血案
這篇文章主要給大家介紹了關(guān)于MySQL學(xué)習(xí)記錄之KEY分區(qū)引發(fā)的血案的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11MySQL數(shù)據(jù)同步出現(xiàn)Slave_IO_Running:?No問(wèn)題的解決
本人最近工作中遇到了Slave_IO_Running:NO報(bào)錯(cuò)的情況,通過(guò)查找相關(guān)資料終于解決了,下面這篇文章主要給大家介紹了關(guān)于MySQL數(shù)據(jù)同步出現(xiàn)Slave_IO_Running:?No問(wèn)題的解決方法,需要的朋友可以參考下2023-05-05MySQL學(xué)習(xí)之?dāng)?shù)據(jù)庫(kù)備份詳解
本篇文章主要介紹了MySQL中的 數(shù)據(jù)庫(kù)備份詳解,有需要的朋友可以借鑒參考下,希望可以有所幫助,祝大家多多進(jìn)步,早日升職加薪2021-09-09