我確實(shí)更改了MySQL安裝的datadir,并按照某些步驟運(yùn)行良好。我曾經(jīng)動(dòng)過(guò)的每個(gè)基地都正確地移動(dòng)了,但是一個(gè)。我可以連接和使用數(shù)據(jù)庫(kù),即使SHOW TABLES也會(huì)正確返回所有表,并且每個(gè)表的文件都存在于mysql數(shù)據(jù)目錄中。但是,當(dāng)我嘗試在此處選擇內(nèi)容時(shí),它說(shuō)該表不存在。但是表確實(shí)存在,它甚至顯示在SHOW TABLES語(yǔ)句中!我的猜測(cè)是,SHOW TABLES會(huì)以某種方式列出文件的存在,文件已損壞或類似的東西,但它不會(huì)對(duì)其進(jìn)行檢查。因此,我可以列出它們,但不能訪問(wèn)它們。但這只是一個(gè)猜測(cè),我以前從未見過(guò)?,F(xiàn)在無(wú)法重新啟動(dòng)數(shù)據(jù)庫(kù)進(jìn)行測(cè)試,使用該數(shù)據(jù)庫(kù)的所有其他應(yīng)用程序都可以正常運(yùn)行。有誰(shuí)知道這是什么嗎?例:mysql> SHOW TABLES;+-----------------------+| Tables_in_database |+-----------------------+| TABLE_ONE || TABLE_TWO || TABLE_THREE |+-----------------------+mysql> SELECT * FROM TABLE_ONE;ERROR 1146 (42S02): Table 'database.TABLE_ONE' doesn't exist
3 回答

12345678_0001
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
以防萬(wàn)一有人還在乎:
使用命令直接復(fù)制數(shù)據(jù)庫(kù)目錄后,我遇到了同樣的問(wèn)題
cp -r /path/to/my/database /var/lib/mysql/new_database
如果您對(duì)使用InnoDB表的數(shù)據(jù)庫(kù)執(zhí)行此操作,則會(huì)遇到上述瘋狂的“表不存在”錯(cuò)誤。
問(wèn)題是,你需要ib*在MySQL的datadir根目錄的文件(例如ibdata1,ib_logfile0和ib_logfile1)。
當(dāng)我復(fù)制這些內(nèi)容時(shí),它對(duì)我有用。

holdtom
TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超10個(gè)贊
對(duì)我來(lái)說(shuō),在Mac OS(MySQL DMG安裝)上,只需重啟MySQL服務(wù)器即可解決此問(wèn)題。我猜是因?yàn)槎咴斐傻摹?/p>
添加回答
舉報(bào)
0/150
提交
取消