1. 問題描述mysql
因爲最近使用本地的MySQL奔潰了,在修改管理員密碼時,不慎修改錯誤,致使沒法從新寫會,甚至按照MySQL官網手冊都沒法修改正確,遂放棄修改root密碼,直接將一個未有數據的純淨版MySQL複製到原文件夾下,將以前的數據(即MySQL目錄下的data文件複製到對應的目錄下),可是出現了一個問題。sql
以下:數據庫
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
即:展現數據庫下的表時,是能夠展現出來的,但當要搜索表中的數據時會提示如上的ERROR, 報找不到表的錯誤。google
2.思路spa
由於是直接把原有數據庫中的數據(data)複製過來的,應該是某個或者某些的配置文件或者中間件沒有對應的複製過來,因此就找對應的配置文件,一同複製過來。code
3.解決方法中間件
對應的配置文件最後本身沒有找出來,在google上找到了相應的帖子,思路基本正確。blog
須要複製的文件爲:ib* 的文件,如 ibdata1
, ib_logfile0
和 ib_logfile1 ,將這些文件複製到文件下,問題解決,能夠查找表中的數據。
get
4. 參考連接it
https://stackoverflow.com/questions/7759170/mysql-table-doesnt-exist-but-it-does-or-it-should