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
何が問題なのでしょうか?
私も過去に同じ問題を抱えていました。データベースファイルを新しい場所に移動した後、mysqlサーバーを更新した後にすべてが発生していました。 InnoDBエンジンを備えたすべてのテーブルがデータベースから消えました。私はそれらを再作成しようとしていましたが、mysqlは私に言った1146: Table 'xxx' doesn't exist
データベースを再作成し、mysqlサービスを再起動するまで常に。
InnoDBテーブルバイナリについて読む必要があると思います。
私は同じ問題を抱えており、ウェブ上でこれに関する良いヒントを得ることができないので、私はあなたとすべての必要な人のためにこれを共有しました。
私の状況では、データベース(すべてのファイル:frm、myd)をMySQLデータフォルダーのデータフォルダーにコピーします(自宅のWampを使用)。テーブルを作成してエラー#1146 Table '...' doesn't exist!
。
MySQLバージョン5.5.16でWamp 2.1を使用しています。
私の解決策:
データベースをファイルにエクスポートします。
エクスポートされたファイルが本当に問題ないか確認してください!!;
問題のあるデータベースを削除します。
最後と同じ名前で新しいデータベースを作成します。
ファイルをデータベースにインポートします。
FOR ME IS問題が解決しました。エラーなしでテーブルを再作成できるようになりました。
MySQLを再起動するとうまくいきます。
私の場合、PhpMyAdminにテーブルが表示されていなくても、このコマンドを実行しました。
DROP TABLE mytable
それから
CREATE TABLE....
私のために働いた!
ファイル名を確認してください。
インポートするデータベースと一致するphpmyadminで新しいデータベースを作成する必要がある場合があります.
同じ問題がありました。 mysqlでテーブルを作成しようとしましたが、同じエラーが発生しました。 mysqlサーバーを再起動してコマンドを実行し、再作成後にテーブルを作成/移行できました。
今日も同じ問題に遭遇しました。テーブルusers
を作成しようとしていたが、ERROR 1146 (42S02): Table users doesn't exist
を要求されたが、これは意味をなさない。テーブルを作成しようとしていたからだ!
次に、DROP TABLE users
と入力してテーブルを削除しようとしましたが、テーブルが存在しないために失敗することがわかっていたため、Unknown table users
と言ってエラーが発生しました。このエラーが発生した後、テーブルを再度作成しようとしましたが、魔法のように、テーブルが正常に作成されました!
私の直感では、おそらくこのテーブルを以前に作成しており、どういうわけか完全にクリアされたわけではありません。 DROP TABLE
と明示的に言うことで、なんとか内部状態をリセットできましたか?しかし、それは私の推測です。
要するに、作成しているテーブルをDROPして、もう一度作成します。
pprakashが上で言及したように、table.frmファイルとibdata1ファイルをコピーすることは私にとってはうまくいきました。 (私はちょうどそのコメントにコメントしたでしょうが、このSO 50ポイントの要件は、それが既存のものの単なる再ハッシュであっても...奇妙なことです。)
要するに:
その後、すべてが順調でした。 (成功した場合はバックアップすることを忘れないでください!)
今日、私は同じ問題に直面していました。私は非常に困難な状況でしたが、どのようなIDで異なる名前のテーブルを作成しましたか?.
トリガーが機能していないため、この問題が発生しました。トリガーを削除した後に動作しました。
列名はテーブル内で一意である必要があります。同じテーブルにasd
という名前の2つの列を持つことはできません。
最近、同じ問題が発生しましたが、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のアクセス条件を確認してください。
お役に立てれば...
cMD&%path%= setからmysql/binに実行します
mysql_upgrade -u user -ppassword
私にとっては、テーブル名の大文字/小文字の問題でした。テーブルケース名が削除クエリで一致することを確認する必要がありました。テーブルnotifications
はNotifications
と同じではありませんでした。テーブル名の大文字小文字をクエリとMySQLWorkbenchが報告したものを一致させることで修正しました。
奇妙なのは、このエラーが実際のsqlステートメントで表示されることです。この大文字と小文字の区別の原因はわかりません。おそらく自動AWS RDS更新。
同じ問題がありました。 Windowsの起動エラーが発生した後、これによりいくつかのファイルが破損したようです。保存したスクリプトから再度DBをインポートしましたが、正常に機能します。
Mytable.idbテーブルファイルを別の場所からコピーした後にこの問題が発生しました。この問題を解決するために、次のことを行いました。
ALTER TABLE mydatabase.mytable DISCARD TABLESPACE;
Mytable.idbをコピーします
ALTER TABLE mydatabase.mytable IMPORT TABLESPACE;
MySqlを再起動します
私がこれに直面した理由は、わずかに異なるフィールドを含む2つの「models.py」ファイルがあったためです。私はそれを解決しました:
私の場合、MySQLのパラメーター。 lower_case_table_names
が構成されました= 0
。
大文字の使用に関連するクエリは機能しません。