1

root を使用して、Sequel pro で GameCenter タイプのデータベースを作成しましたが、何らかの理由で、データベースに接続してテーブルにアクセスしようとすると、次のエラーが発生することがあります。


テーブル 'Achievement' の情報を取得中にエラーが発生しました。もう一度やり直してください。

MySQL は次のように述べています: テーブル 'gamecenter2.achievement'
は存在しません

私は周りを見回しましたが、ほとんどの人はデータベースをある場所から別の場所にコピーするときに発生する問題だと言いますが、私はそうしていません。

MySQL を使用する端末では、データベースとテーブルがすべて表示されますが、テーブルの内容にアクセスしようとすると同じエラーが発生します。

SHOW COLUMNS FROM Achievement;
ERROR 1146 (42S02): Table 'gamecenter2.achievement' doesn't exist

CREATE TABLES と INSERT を何度も実行するのは非常に面倒なので、これに関する助けをいただければ幸いです。

4

1 に答える 1

3

私は最近同じ問題を抱えていました (そして、sequel pro で同じエラー メッセージが表示されました)。その後、特定のタイプの MySQL データベース (つまり、InnoDB を使用しているデータベース) が、個々のテーブルの実際のデータを「ibdata1」という名前のファイルの外部に格納していることが原因であることを発見しました。 」 (詳細については、https ://dba.stackexchange.com/questions/15531/why-does-innodb-store-all-databases-in-one-file をご覧ください)。したがって、タイム マシンを使用してデータベースの個々のフォルダーを復元する場合、実際には、内部に適切なものがない空のデータベース アーキテクチャを復元するだけです。その「ibdata1」ファイルと適切な「ib_logfile」ファイルも復元していない場合、データを見つけることができません。解決策は、それらのファイル (または最近の適切なコピー) も復元したことを確認することです。

また、何かを復元する前に必ず mysql サービスを停止してください。つまり、コマンド ラインから "mysql.server stop" を実行します (または、mysql をインストールした場合は "launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist" を実行します)。自作)。

于 2014-10-07T14:32:45.570 に答える