web-dev-qa-db-ja.com

バグ? #1146-テーブル「xxx.xxxxx」は存在しません

Windows XPを使用しています。組み込みのテーブル作成機能を使用してphpMyAdminでテーブルを作成しています。データベース名はdddです。

次のコードを生成します。

CREATE TABLE  `ddd`.`mwrevision` (

`asd` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`sddd` INT NOT NULL
) ENGINE = INNODB;

そして、次のエラーが表示されます。

MySQL said:     
#1146 - Table 'ddd.mwrevision' doesn't exist 

何が問題なのでしょうか?

30
Shaheer

私も過去に同じ問題を抱えていました。データベースファイルを新しい場所に移動した後、mysqlサーバーを更新した後にすべてが発生していました。 InnoDBエンジンを備えたすべてのテーブルがデータベースから消えました。私はそれらを再作成しようとしていましたが、mysqlは私に言った1146: Table 'xxx' doesn't existデータベースを再作成し、mysqlサービスを再起動するまで常に。

InnoDBテーブルバイナリについて読む必要があると思います。

27
sempasha

私は同じ問題を抱えており、ウェブ上でこれに関する良いヒントを得ることができないので、私はあなたとすべての必要な人のためにこれを共有しました。

私の状況では、データベース(すべてのファイル:frm、myd)をMySQLデータフォルダーのデータフォルダーにコピーします(自宅のWampを使用)。テーブルを作成してエラー#1146 Table '...' doesn't exist!

MySQLバージョン5.5.16でWamp 2.1を使用しています。

私の解決策:

  1. データベースをファイルにエクスポートします。

  2. エクスポートされたファイルが本当に問題ないか確認してください!!;

  3. 問題のあるデータベースを削除します。

  4. 最後と同じ名前で新しいデータベースを作成します。

  5. ファイルをデータベースにインポートします。

FOR ME IS問題が解決しました。エラーなしでテーブルを再作成できるようになりました。

11
carlos

MySQLを再起動するとうまくいきます。

5
Muhammad Usman

私の場合、PhpMyAdminにテーブルが表示されていなくても、このコマンドを実行しました。

DROP TABLE mytable

それから

CREATE TABLE....

私のために働いた!

4
Jim 007

ファイル名を確認してください。
インポートするデータベースと一致するphpmyadminで新しいデータベースを作成する必要がある場合があります.

3
blarg

同じ問題がありました。 mysqlでテーブルを作成しようとしましたが、同じエラーが発生しました。 mysqlサーバーを再起動してコマンドを実行し、再作成後にテーブルを作成/移行できました。

3
thekosmix

今日も同じ問題に遭遇しました。テーブルusersを作成しようとしていたが、ERROR 1146 (42S02): Table users doesn't existを要求されたが、これは意味をなさない。テーブルを作成しようとしていたからだ!

次に、DROP TABLE usersと入力してテーブルを削除しようとしましたが、テーブルが存在しないために失敗することがわかっていたため、Unknown table usersと言ってエラーが発生しました。このエラーが発生した後、テーブルを再度作成しようとしましたが、魔法のように、テーブルが正常に作成されました!

私の直感では、おそらくこのテーブルを以前に作成しており、どういうわけか完全にクリアされたわけではありません。 DROP TABLEと明示的に言うことで、なんとか内部状態をリセットできましたか?しかし、それは私の推測です。

要するに、作成しているテーブルをDROPして、もう一度作成します。

1
Xin

pprakashが上で言及したように、table.frmファイルibdata1ファイルをコピーすることは私にとってはうまくいきました。 (私はちょうどそのコメントにコメントしたでしょうが、このSO 50ポイントの要件は、それが既存のものの単なる再ハッシュであっても...奇妙なことです。)

要するに:

  1. DB Explorerクライアントを強調したテキスト(ワークベンチなど)を閉じます。
  2. MySQLサービス(Windowsホスト)を停止します。
  3. 事実上すべての安全なコピーを作成してください!
  4. テーブルファイルのコピー(例:mytable.frm)をスキーマデータフォルダー(例:MySQL Server/data/{yourschema})に保存します。
  5. ibdata1ファイルのコピーをデータフォルダー(つまり、MySQLサーバー/データ)に保存します。
  6. MySQLサービスを再起動します。
  7. DB Explorerクライアントでテーブルがアクセス可能、クエリ可能などになっていることを確認します。

その後、すべてが順調でした。 (成功した場合はバックアップすることを忘れないでください!)

1
SteveCinq

今日、私は同じ問題に直面していました。私は非常に困難な状況でしたが、どのようなIDで異な​​る名前のテーブルを作成しましたか?.

1
Vipin Gurjar

トリガーが機能していないため、この問題が発生しました。トリガーを削除した後に動作しました。

0
DauleDK

列名はテーブル内で一意である必要があります。同じテーブルにasdという名前の2つの列を持つことはできません。

0
Oswald

最近、同じ問題が発生しましたが、Linux Serverで発生しました。データベースがクラッシュし、単純にコピーすることに基づいて、バックアップからそれを回復しました/var/lib/mysql/*(wampのアナログmysql DATAフォルダー)。リカバリ後、新しいテーブルを作成する必要があり、mysqlエラー#1146が発生しました。 mysqlを再起動しようとしましたが、起動できなかったと言われました。 mysqlのログを確認したところ、mysqlにはそのDBファイルへのアクセス権がないことがわかりました。/var/lib/mysql/*の所有者情報を確認し、'myuser:myuser'(myuser is me)。ただし、'mysql:adm'(開発者のマシンも同様)、所有者を 'mysql:adm'に変更しました。この後、mysqlが正常に起動し、テーブルを作成したり、他の操作を実行したりできました。

そのため、データベースファイルを移動したり、バックアップから復元した後、mysqlのアクセス条件を確認してください。

お役に立てれば...

0
vlad

cMD&%path%= setからmysql/binに実行します

mysql_upgrade -u user -ppassword

0
Ravi Parekh

私にとっては、テーブル名の大文字/小文字の問題でした。テーブルケース名が削除クエリで一致することを確認する必要がありました。テーブルnotificationsNotificationsと同じではありませんでした。テーブル名の大文字小文字をクエリとMySQLWorkbenchが報告したものを一致させることで修正しました。

奇妙なのは、このエラーが実際のsqlステートメントで表示されることです。この大文字と小文字の区別の原因はわかりません。おそらく自動AWS RDS更新。

0
Kahitarich

同じ問題がありました。 Windowsの起動エラーが発生した後、これによりいくつかのファイルが破損したようです。保存したスクリプトから再度DBをインポートしましたが、正常に機能します。

0
Ayman Al-Absi

Mytable.idbテーブルファイルを別の場所からコピーした後にこの問題が発生しました。この問題を解決するために、次のことを行いました。

ALTER TABLE mydatabase.mytable DISCARD TABLESPACE;

Mytable.idbをコピーします

ALTER TABLE mydatabase.mytable IMPORT TABLESPACE;

MySqlを再起動します

0
l0pan

私がこれに直面した理由は、わずかに異なるフィールドを含む2つの「models.py」ファイルがあったためです。私はそれを解決しました:

  1. models.pyファイルの1つを削除する
  2. 削除されたファイルへの参照を修正する
  3. その後、manage.py syncdbを実行します
0
Amey

私の場合、MySQLのパラメーター。 lower_case_table_namesが構成されました= 0

大文字の使用に関連するクエリは機能しません。

0
hiropon