MySQLエラー #1046「No database selected(データベースが選択されていません)」の原因と解決方法
MySQLエラー #1046 とは
MySQLでテーブルを作成する際に、使用するデータベースを選択せずに作業を始めると、「ERROR 1046 (3D000): No database selected」というエラーが発生します。この記事では、エラーが起こる原因と、具体的な解決手順をわかりやすく解説します。
エラーが発生するケース
まず、以下のようにMySQLを起動します。

正しいパスワードを入力すると、上記のようなコンソール画面が開きます。この状態で、データベースを何も選択せずにテーブルを作成してみましょう。
mysql> CREATE table TblUni -> ( -> id int, -> Name varchar(100) -> );
すると、次のようなエラーメッセージが表示されます。
ERROR 1046 (3D000): No database selected
実際の画面では以下のように表示されます。

エラーの解決方法:データベースを選択する
このエラーを解消するには、テーブル作成などの操作を行う前に、あらかじめ使用するデータベースを選択しておく必要があります。以下の手順に従ってください。
手順1:SHOW DATABASESで既存のデータベースを確認する
まず、SHOWコマンドを使って、MySQL内にどんなデータベースが存在するのかを確認しましょう。
mysql> SHOW databases;
実行結果は以下のとおりです。
+--------------------+ | Database | +--------------------+ | business | | hello | | information_schema | | mybusiness | | mysql | | performance_schema | | sample | | sys | | test | +--------------------+ 9 rows in set (0.00 sec)
手順2:USEコマンドでデータベースを選択する
表示された一覧の中から、使用したいデータベースを選びます。ここでは例として「business」データベースを使用します。「use」コマンドで切り替えを行いましょう。
mysql> use business; Database changed
「Database changed」と表示されれば、データベースの切り替えは正常に完了しています。
手順3:再度テーブルを作成する
データベース「business」を選択した状態であれば、先ほどと同じCREATE TABLE文を実行してもエラーは発生しません。
mysql> CREATE table TblUni -> ( -> id int, -> Name varchar(100) -> ); Query OK, 0 rows affected (0.50 sec)
「Query OK」と表示され、テーブルが正常に作成されました。
まとめ
MySQLエラー #1046「No database selected」は、データベース未選択の状態でSQLを実行したことが原因です。SHOW DATABASESでデータベース一覧を確認し、USEコマンドで対象のデータベースを選択してから操作を行えば、エラーを確実に回避できます。
-
MySQLで現在選択中のデータベースを確認する方法|DATABASE()関数とstatusコマンドの使い方
MySQLに接続している際、「今どのデータベースを選択しているのか」を確認したい場面はよくあります。この記事では、DATABASE()関数やstatusコマンドを使って、現在選択中のデータベース名を簡単に確認する方法を解説します。 DATABASE()関数で選択中のデータベースを確認する MySQLでは、DUALテーブルに対してDATABASE()関数を実行することで、現在選択されているデータベース名を取得できます。 手順1:データベースを選択する まず、例として「business」というデータベースを選択してみましょう。以下のコマンドを実行します。 mysql> use busi
-
JavaとMySQLで発生するJDBCエラー「Unknown database」の原因と解決方法
JDBCエラー「Unknown database」とは?このエラーは、MySQLに存在しないデータベースを指定して接続しようとした場合に発生します。JDBCでデータベースに接続する際、接続URL内のデータベース名が実際には存在しないと、「Unknown database(不明なデータベース)」という例外がスローされます。ここでは、まずエラーが実際にどのように表示されるかを確認し、その後の解決方法を解説します。エラーが発生するサンプルコード以下はJavaのコード例です。ここでは、存在しないデータベース「onlinebookstore」を接続先として指定しています。import java.sql.