8

xampp (バージョン 1.8.1) で実行されている MySQL 5.5 を使用して問題が発生しました。コンソール ウィンドウからデータベースにテーブルを追加しようとすると、「#1046 - データベースが選択されていません」というエラーが表示され続けました。

データベースが「USE database_name;」が選択されていることを確認しましたが、それでも同じエラーが発生しました。

再確認したところ、ユーザーのすべての権限が有効になっていることがわかりました。イライラして、「すべてのチェックを外して」から「すべてをチェック」グローバル権限。

ログアウトし、サーバー サービスを再起動し、ブラウザを閉じ、サーバー サービスを再起動し、ブラウザを開いてログインしました。

これで、コンソールからテーブルを作成できるようになりました。権限をリセットすると問題が解決したようです。

これが既知のバグなのか、運が良かったのか、要点を完全に見逃していたのか、誰か教えてもらえますか? このエラーに関して私が見つけたドキュメントは、主にデータベースをインポートし、「Use Database_Name;」を使用するためのものでした。データベースが実際に選択されていることを確認します。しかし、これが問題だったとは思いません。

注意: 新しいデータベースを作成しようとすると、#1046 エラーが再度表示されます。上記の方法はまぐれで、新しいデータベース内に新しいテーブルを作成することはできません。ただし、作成した最初のデータベースを引き続き使用できます。

4

3 に答える 3

54

これは非常に遅い回答であることはわかっていますが、このエラーに遭遇した人のために、データベース名にダッシュが含まれている場合にもポップアップする可能性があります。その場合は、次のようにデータベース名をバッククォートで囲む必要があります。

GRANT ALL ON `database-name`.* TO 'username'@'localhost';

エラー メッセージは、ユーザーに権限を付与するためにデータベースを選択する必要があることを示唆しているため、あまり役に立ちません。

于 2014-10-10T14:07:28.960 に答える
15

別の遅い回答ですが、これはテーブル名 (.*) が指定されていない場合にも発生する可能性があります。データベース名の後に .* を追加して修正し、動作させました。

前:

GRANT ALL PRIVILEGES ON my_db_name TO ...

後:

GRANT ALL PRIVILEGES ON my_db_name.* TO ...

この変更により、ややあいまいなエラー「エラー 1046 (3D000): データベースが選択されていません」が修正されました。

于 2015-08-17T21:04:41.370 に答える
1

権限が「user」テーブルに直接挿入されている場合 (phpMyAdmin などの多くの Web フロントエンドがそうしています)、実行するかFLUSH PRIVILEGES(phpMyAdmin にはこのためのボタンがあります)、サーバーを再起動して権限をリロードする必要があります。を使用する場合はどちらも必要ありませんGRANT

于 2013-06-15T18:34:49.510 に答える