我確實更改了MySQL安裝的datadir,并按照某些步驟運行良好。我曾經(jīng)動過的每個基地都正確地移動了,但是一個。我可以連接和使用數(shù)據(jù)庫,即使SHOW TABLES也會正確返回所有表,并且每個表的文件都存在于mysql數(shù)據(jù)目錄中。但是,當我嘗試在此處選擇內(nèi)容時,它說該表不存在。但是表確實存在,它甚至顯示在SHOW TABLES語句中!我的猜測是,SHOW TABLES會以某種方式列出文件的存在,文件已損壞或類似的東西,但它不會對其進行檢查。因此,我可以列出它們,但不能訪問它們。但這只是一個猜測,我以前從未見過。現(xiàn)在無法重新啟動數(shù)據(jù)庫進行測試,使用該數(shù)據(jù)庫的所有其他應(yīng)用程序都可以正常運行。有誰知道這是什么嗎?例: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貢獻1802條經(jīng)驗 獲得超5個贊
以防萬一有人還在乎:
使用命令直接復(fù)制數(shù)據(jù)庫目錄后,我遇到了同樣的問題
cp -r /path/to/my/database /var/lib/mysql/new_database
如果您對使用InnoDB表的數(shù)據(jù)庫執(zhí)行此操作,則會遇到上述瘋狂的“表不存在”錯誤。
問題是,你需要ib*在MySQL的datadir根目錄的文件(例如ibdata1,ib_logfile0和ib_logfile1)。
當我復(fù)制這些內(nèi)容時,它對我有用。
添加回答
舉報
0/150
提交
取消