エラー1046データベースが選択されていません。解決方法は?


297

エラーSQLクエリ:

--
-- Database: `work`
--
-- --------------------------------------------------------
--
-- Table structure for table `administrators`
--
CREATE TABLE IF NOT EXISTS `administrators` (

`user_id` varchar( 30 ) NOT NULL ,
`password` varchar( 30 ) NOT NULL ) ENGINE = InnoDB DEFAULT CHARSET = latin1;

MySQLは言った:

#1046 - No database selected

ここで助けが必要です。


7
誰かが興味を持っている場合は、インポートファイルを編集せずにCLIコマンドでデータベース名を指定することもできます。 mysql -u root -p databasename < import.sql
Sam Dufel 2014年

私に何が起こったのか:データベースの名前を入力したスキーマを作成すると、「失敗、データベースが選択されていません」と表示されます。ワークベンチを再度開きます。作成に失敗したばかりのデータベースが表示されます。次に、作成したデータベースを選択し、.sqlファイルを開いて実行します。createdatabaseとuse databaseステートメントの両方を使用すると、「fail no database selected」と再び表示されます。ワークベンチを再度開くと、テーブルがすべて構築されています。MACシステム、ワークベンチ6.3.3
Tiina

回答:


409

MySQLに使用するデータベースを通知する必要があります。

USE database_name;

テーブルを作成する前。

データベースが存在しない場合は、次のように作成する必要があります。

CREATE DATABASE database_name;

に続く:

USE database_name;

8
私の場合、mysqldumpを使用してデータベースをエクスポートし、インポート時にこれを実行していました。エクスポートされたsqlファイルを編集して、これらの2つのコマンドをファイルの先頭に追加する必要がありました。
bh5k 2012年

ありがとう!これは私が必要としたものです。データベースとテーブルを作成するスクリプトがありましたが、USE tablenameコマンドを挿入する必要があるため、テーブルが作成されませんでした。
ckpepper02 14

1
書き込み:CREATE DATABASE IF NOT EXISTS database_name ; USE database_name;これは、データベースがすでに作成されているかどうかに関係なく機能します。
Stian

50

MySQLに使用するデータベースを指示することもできます(すでに作成している場合)。

 mysql -u example_user -p --database=example < ./example.sql

7
mysql example -u example_user -p < ./example.sql代わりにしないのはなぜですか?
Pacerier、2015年

36

以前に作成したデータベースをインポートしようとすると、同じエラーに直面しました。この問題を修正するために私がしたことは次のとおりです。

1-新しいデータベースを作成する

2- useコマンドで使用する

ここに画像の説明を入力してください

3-もう一度お試しください

これは私にとってはうまくいきます。


28

コマンドラインでこれを実行しようとしている場合...

コマンドラインインターフェースからCREATE TABLEステートメントを実行する場合は、クエリを実行する前に、作業中のデータベースを指定する必要があります。

USE your_database;

こちらがドキュメントです。

MySQL Workbench経由でこれを実行しようとしている場合...

...:Object Browser:タブの上にあるドロップダウンメニューで適切なデータベース/カタログを選択する必要があります。接続のデフォルトのスキーマ/データベース/カタログを指定できます。ワークベンチスプラッシュ画面のSQL開発の見出しの下にある[接続の管理]オプションをクリックします。

補遺

これはすべて、テーブルを作成したいデータベースがあることを前提としています。そうでない場合は、何よりも先にデータベースを作成する必要があります。

CREATE DATABASE your_database;

MySQL Workbenchの使用:ドロップダウンの場所を画像で提供していただけませんか?
AdrianRM

これは、MySQL Workbenchの古いバージョンを参照している可能性があると思います。最新バージョンを取得したところ、「オブジェクトブラウザ」タブがどこにも表示されません。
Tim Keating

USE database;このエラーが発生した場合、MySQL Workbench(v5.2.47を使用)でもコマンドを使用する必要があるようです。クエリタブごとに1回だけ実行する必要があります-そのタブでの後続のすべての実行はデータベースを正しく使用しているようです。
DACrosby 2013年

こんにちは。WordPressSQLの場合、SQLファイルでどのように「使用」できますか。もう一度説明してください。私は今問題を抱えています。
Rahul S

21

phpMyAdminを通じてこれを行っている場合:

  • 私はあなたがすでにライブサイトで新しいMySQLデータベースを作成していると仮定しています(ライブサイトとは、あなたがホスティングしている会社(私の場合はBluehost)を意味します)。

  • ライブサイトのphpMyAdminに移動します。作成したデータベースにログインします。

  • 今重要!上部のバーの「インポート」オプションをクリックする前に、ページの左側でデータベースを選択します(灰色のバー、上部にはPHP Myadminが書かれており、その下にinformation_schemaとログインしたデータベースの名前の2つのオプションがあります。

  • 作成またはログインしたデータベースをクリックすると、そのデータベースが表示され、インポートオプションをクリックします。

それは私にとってはトリックでした。本当に助かります


まだデータベースにアクセスしていない場合は、ページにオプションを1つ選択できるようにすると思います。
アンディマーサー

15
  • NotepadまたはNotepad ++SQLを使用してファイルを編集する
  • 次の2行を追加します。

CREATE DATABASE NAME; USE NAME;


MySql Workbenchを使用してインポートしようとしているが、データベースが選択されていないため、WordPressデータベースファイルの場合にどのように書き込むことができますか
Rahul S

8

データベースをインポートする場合は、最初に同じ名前でデータベースを作成し、それを選択してから、既存のデータベースをインポートする必要があります。

それがあなたのために働くことを願っています!


手順を説明する回答に詳細を追加してください。
Starx

7

MySQL Workbenchの場合

  1. 右クリックして[スキーマ]タブからデータベースを選択します。
  2. データベースをデフォルトスキーマとして設定

ここに画像の説明を入力してください


2

引用ivan n: "データベースをインポートする場合は、最初に同じ名前でデータベースを作成し、それを選択してから、既存のデータベースをインポートする必要があります。うまくいくことを願っています!"

手順は次のとおりです。たとえば、my_db1、utf8_general_ciなどのデータベースを作成します。次に、クリックしてこのデータベース内に移動します。次に、「インポート」をクリックし、データベースを選択します:my_db1.sql

これですべてです。


これはIvanの回答の下にあるコメントである必要があります。そうすれば、彼は回答を変更してあなたのステップを含めることができます。
Navigatron 2013年

1

最初にデータベースを選択:USE db_name

次に、テーブルを作成します。CREATETABLE tb_name(id int、name varchar(255)、salary int、city varchar(255));

これはmysql 5.5バージョンの構文


1

空のパスワードに注意してください

mysqldump [options] -p '' --databases database_name

パスワードを要求し、文句を言うでしょう mysqldump: Got error: 1046: "No database selected" when selecting the database

問題は、-pオプションがと-pパスワードの間にスペースがないことを要求することです。

mysqldump [options] -p'' --databases database_name

問題を解決しました(引用はもう必要ありません)。


0

これはかなり古いスレッドですが、私は何かを見つけました。新しいデータベースを作成してユーザーを追加し、phpMyAdminを使用して.sqlファイルをアップロードしました。完全な失敗。システムが目的のDBを認識しない...

最初に新しいユーザーをアタッチせずに新しく開始し、同じphpMyAdminインポートを実行すると、正常に動作します。


0

追加したかっただけです:ライブサイトのmySQLでデータベースを作成した場合、PHPMyAdminに移動してもデータベースが表示されません。cPanelからログアウトして再度ログインし、PHPMyAdminを開くと、そこにあるはずです。


0

安全性の追加要素として、同じスクリプトで複数のDBを使用する場合、クエリでDBを指定できます(例: "create table my_awesome_db.really_cool_table ...")。


0

遅いと思います:]

mysqldumpMySQLの代わりにこのエラーが発生したときにここで私のような解決策を探している場合は、たまたまドイツのWebサイトで見つけたこの解決策を試してみてください。

したがって、-databasesデータベース名の前に欠落パラメータがあるために問題が発生します

したがって、コマンドは次のようになります。

mysqldump -pdbpass -udbuser --databases dbname

私の場合の問題の別の原因は、私がローカルで開発しrootていて、ユーザーがパスワードを持っていないため、この場合はの--password=代わりに使用する必要が-pdbpassあるため、最後のコマンドは次のとおりでした。

mysqldump -udbuser --password= --databases dbname

完全なスレッドへのリンク(ドイツ語):https : //marius.bloggt-in-braunschweig.de/2016/04/29/solution-mysqldump-no-database-selected-when-selecting-the-database/


-1

:(あなたが上になりましたMySQLのphpMyAdminを使用してrの場合Serverのようなものit'l。JSTという新しいDB mysql.Selectに新しいDBを作成します file.Importを選択し、インポート]タブに移動します.Now * >>データベース。) !

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.