2012-01-03 36 views
0

「学生」データベースを作成した後、 "ERROR 1146(42S02):テーブル 'student.db'というメッセージは存在しません。 私はこの種のエラーが起こった理由を理解できませんが、確かにデータベースを作成しました。私はすでに学生データベースを作成していますが、「テーブル」student.dbが存在しません1146「テーブル」student.dbが存在しません

問題の原因を教えてください。

下記の手順を参考にして再現してください。

Start mysql with root account 
create database student; 
use student; 

insert into db values ('%', 'student', 'beginner', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y'); 

エラーは......「ERROR 1146(42S02)を発生しました:テーブル 'student.db' が存在しません

私はその学生のデータベースは「ショーのデータベースを使用して存在して確認することができます;。 」。しかし、このメッセージは 『student.db』は存在しないと言う。

+0

あなたはstudent'データベース '内のテーブル' db'を持っていません。 – Virendra

+0

ええ..今、私は問題が何であるかを知っています。thx – user1127017

答えて

0

student.dbがstudentデータベース内のデシベルという名前のテーブルを参照。あなたは明らかにまだ、このテーブルを作成していない...
ところでエラーメッセージと問題の内容を注意深く読んでください。

0

この文

insert into db values ('%', 'student', 'beginner', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y'); 

は、いくつかの点で、dbという名前のテーブルが作成されていることを前提としています。あなたがここに示されてきたものに基づいて

create table db (... 

、あなたが持っていないようですそれを作りました。その定義はどこから来たと思いますか?

0

データベースを作成しましたが、データベースを作成していません。存在しないテーブル名 "db"にデータを挿入するようにMySQLに指示しています。このようなものが必要です:

create database student; 
use student; 
create table db (.... field definitions here ...) <---you're missing this step 
insert into db values (....); 

データベースは単なるコンテナです。それは実際に有用であるためには、少なくとも1つのテーブルが定義されていなければなりません。

+0

ありがとう。私は何を間違えたのかを知っておく必要があります。 – user1127017

3

システムテーブルを直接変更して特権を付与しようとしているようです。すべてのMySQLインスタンスにテーブルmysql.dbがありますが、そのテーブルはstudentデータベースに属していません。

私はあなたの代わりに、直接システムデータをいじっのGRANTステートメントを使用することをお勧め:

mysql> CREATE USER 'beginner'@'%' identified by 'enter password here'; 
mysql> GRANT ALL PRIVILEGES ON student.* to 'beginner'; 
+0

あなたはおそらくこれを見た唯一の人でしょう。 –

+0

ありがとうございます。あなたが言ったように、このステートメントは学生データベースには適用できません。なぜなら、dbテーブルを持っていないからです。 今、私が誤解したことを知っておく必要があります。 – user1127017

関連する問題