13

データベース テーブルを本番サーバーからローカル テスト マシンにコピーして、実際のデータ (のコピー) をテストできるようにしたいと考えています。

mysql を停止し、frm、MYD、および MYI ファイルをすべて削除しました。ここで mysql を起動し、show テーブルにクエリを実行すると、空の結果セットが返されます。次に、mysql をシャットダウンし、すべての frm、MYD、および MYI ファイルをサーバーからコピーしました。mysql を起動すると、「テーブルを表示」すると期待どおりにテーブルが表示されますが、クエリを実行しようとするとエラー メッセージが表示されます。

エラー 1017 (HY000): ファイルが見つかりません: './WhateverTableIQuery.frm' (errno: 13)

ただし、WhateverTableIQuery.frm ファイルはディスク上にあり、サーバー上のファイルと同一です。

何が問題なのかについてのアイデアはありますか?

4

7 に答える 7

35

次の 2 つのことを試してみることをお勧めします。

1.権限を確認する

MySQL データ ディレクトリとその中のすべてのファイルが mysql ユーザーと mysql グループによって所有されていることを確認してください。root ユーザーとしてローカルのテスト マシンにファイルをコピーした場合、これは当てはまらない可能性があります。

chown -R mysql:mysql your-mysql-data-dir-here

2. 破損したテーブルを修復する

mysqlcheckを使用して破損したテーブルをチェックし、見つかった場合は修復します。

mysqlcheck -u root -p --auto-repair --all-databases

その後もテーブルを使用できない場合は、mysqldump を試してみてください。

于 2012-08-24T11:21:03.853 に答える
3

frm ファイルと MYD ファイルを使用して MySQL データベースを復元した後、同じ問題が発生しました。何時間も費やした後、mysql ユーザーへの読み取りと書き込みのアクセス許可のみを使用してデータベース ディレクトリを構成し、実行アクセス許可を設定していないことに気付きました。データベースディレクトリに実行権限を追加した後、問題は解決しました。

于 2013-10-27T04:47:17.223 に答える
0

私は同じ問題を抱えていて、これをしました...

  • 移行フォルダーの削除
  • _migrationhistory テーブルを削除します
  • 移行の有効化、追加、更新

これを解決するもっと良い方法があると確信していますが、私にとってはうまくいきました。

于 2015-08-05T03:03:22.423 に答える
0

このエラー「一般エラー: 1017 ファイルが見つかりません」は、テーブルが存在しない場合、WAMP を使用する Windows でも発生しました。

于 2016-02-26T09:19:57.353 に答える
0

mysql-data-directory と<table>.frmファイルのアクセス許可を変更しました。
root ユーザーとして使用する場合:

  • chmod 600 mysql-data-directory chmod 600
  • mysql-data-directory/tableOfData.frm

root 以外のユーザーとして使用する場合:

  • chmod 660 mysql-data-directory
  • chmod 660 mysql-data-directory/tableOfData.frm
于 2015-11-24T21:20:23.083 に答える
0

数分前にまったく同じ問題が発生しましたが、インポートしたい .sql ファイルにアクセスする権限が不十分であることに気付くのに数分かかりました。

この問題を解決するには、(現在のユーザーで) アクセスできることがわかっている場所にファイルを移動するだけです。(例: ~/Home_directory)。

私と同じように答えを探していた孤独な魂を助けることができれば幸いです.

于 2014-09-08T19:12:12.927 に答える