0

データベース 'student' を作成した後、その db に関する権限を設定すると、「エラー 1146(42S02) : テーブル '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'); 

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

「show databases;」を使用して、学生データベースが存在することを確認できます。しかし、このメッセージは「student.db」が存在しないことを示しています。

4

5 に答える 5

3

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

システム データを直接いじる代わりに、GRANT ステートメントを使用することをお勧めします。

mysql> CREATE USER 'beginner'@'%' identified by 'enter password here';
mysql> GRANT ALL PRIVILEGES ON student.* to 'beginner';
于 2012-01-03T02:38:33.177 に答える
0

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

于 2012-01-03T02:28:32.697 に答える
0

この文

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

ある時点で、次の名前のテーブルdbが作成されていると想定しています。

create table db ( ...

あなたがここに示したことに基づいて、あなたはそれを作成していないようです。その定義はどこから来ると思いましたか?

于 2012-01-03T02:28:38.367 に答える
0

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

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

データベースは単なるコンテナです。実際に使用するには、少なくとも 1 つのテーブルが定義されている必要があります。

于 2012-01-03T02:28:54.197 に答える
0

問題は...「InnoDB ENGINE」を備えたDBがあります.......私の解決策は...「MyISAM ENGINE」が必要です。変更方法は?...環境で見つけることができますと

# find / -name my.cnf

LINUX では、単に次の行を

$ vim /etc/mysql/my.cnf 

default-storage-engine= MyISAM

次に、mysql を再起動します。

$ service mysql restart
于 2018-06-04T02:26:00.120 に答える