Fehler 1046 Keine Datenbank ausgewählt, wie zu beheben?


297

Fehler SQL-Abfrage:

--
-- 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 sagte:

#1046 - No database selected

brauche hier etwas Hilfe.


7
Bei Interesse können Sie den Datenbanknamen auch über den CLI-Befehl angeben, ohne die Importdatei zu bearbeiten. mysql -u root -p databasename < import.sql
Sam Dufel

Was mir passiert ist, war: Erstellen Sie ein Schema, das den Namen der Datenbank enthält, und dann heißt es "Fehler, keine Datenbank ausgewählt". Öffnen Sie die Workbench erneut. Ich sehe eine Datenbank, die ich gerade nicht erstellt habe. Dann wähle ich die Datenbank aus, die ich gerade erstellt habe, öffne eine SQL-Datei und führe sie aus, wobei sowohl die Datenbank erstellt als auch die Datenbankanweisungen verwendet werden. Es wird erneut beanstandet, dass keine Datenbank fehlgeschlagen ist. Öffnen Sie die Workbench erneut. Die Tabellen werden alle erstellt. MAC-System, Workbench 6.3.3
Tiina

Antworten:


409

Sie müssen MySQL mitteilen, welche Datenbank verwendet werden soll:

USE database_name;

bevor Sie eine Tabelle erstellen.

Falls die Datenbank nicht vorhanden ist, müssen Sie sie wie folgt erstellen:

CREATE DATABASE database_name;

gefolgt von:

USE database_name;

8
In meinem Fall hatte ich mysqldump zum Exportieren einer Datenbank verwendet und lief beim Import darauf. Ich musste nur die exportierte SQL-Datei bearbeiten, um diese beiden Befehle oben hinzuzufügen.
Bh5k

Vielen Dank! Das brauchte ich. Ich hatte ein Skript zum Erstellen meiner Datenbank und Tabellen, aber die Tabellen wurden nicht erstellt, da ich den USE tablenameBefehl einfügen musste .
ckpepper02

1
Schreiben: CREATE DATABASE IF NOT EXISTS database_name ; USE database_name;Dies funktioniert unabhängig davon, ob die Datenbank bereits erstellt wurde oder nicht.
Stian

50

Sie können MySQL auch mitteilen, welche Datenbank verwendet werden soll (sofern Sie diese bereits erstellt haben):

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

7
Warum nicht mysql example -u example_user -p < ./example.sqlstattdessen?
Pacerier

36

Beim Versuch, eine zuvor erstellte Datenbank zu importieren, trat der gleiche Fehler auf. Folgendes habe ich getan, um dieses Problem zu beheben:

1- Neue Datenbank erstellen

2- Verwenden Sie es auf useBefehl

Geben Sie hier die Bildbeschreibung ein

3- Versuchen Sie es erneut

Das funktioniert bei mir.


28

Wenn Sie dies über die Befehlszeile versuchen ...

Wenn Sie versuchen, die Anweisung CREATE TABLE über die Befehlszeilenschnittstelle auszuführen, müssen Sie die Datenbank angeben, in der Sie arbeiten, bevor Sie die Abfrage ausführen:

USE your_database;

Hier ist die Dokumentation .

Wenn Sie dies über MySQL Workbench versuchen ...

... müssen Sie die entsprechende Datenbank / den entsprechenden Katalog im Dropdown-Menü über der Registerkarte: Objektbrowser: auswählen. Sie können das Standardschema / die Standarddatenbank / den Standardkatalog für die Verbindung angeben. Klicken Sie auf die Optionen "Verbindungen verwalten" unter der Überschrift "SQL-Entwicklung" des Begrüßungsbildschirms der Workbench.

Nachtrag

Dies alles setzt voraus, dass es eine Datenbank gibt, in der Sie die Tabelle erstellen möchten. Wenn nicht, müssen Sie die Datenbank vor allem anderen erstellen:

CREATE DATABASE your_database;

Verwenden von MySQL Workbench: Könnten Sie bitte ein Bild mit dem Speicherort der Dropdown-Liste bereitstellen?
AdrianRM

Ich denke, dies könnte sich auf eine ältere Version von MySQL Workbench beziehen. Ich habe gerade die aktuellste Version gezogen und sehe nirgendwo eine Registerkarte "Objektbrowser".
Tim Keating

Sieht so aus, als müssten Sie den USE database;Befehl auch in MySQL Workbench (ich bin in Version 5.2.47) verwenden, wenn dieser Fehler auftritt. Es muss nur einmal pro Abfrage-Registerkarte ausgeführt werden - alle nachfolgenden Ausführungen auf dieser Registerkarte scheinen die Datenbank korrekt zu verwenden.
DACrosby

Hallo, also für WordPress SQL, wie können wir in SQL-Datei "verwenden". Können Sie das bitte noch einmal klarstellen? Ich habe jetzt das Problem.
Rahul S

21

Wenn Sie dies über phpMyAdmin tun:

  • Ich gehe davon aus, dass Sie bereits eine neue MySQL-Datenbank auf einer Live-Site erstellt haben (mit Live-Site meine ich das Unternehmen, bei dem Sie hosten (in meinem Fall Bluehost)).

  • Gehen Sie auf der Live-Site zu phpMyAdmin - melden Sie sich bei der gerade erstellten Datenbank an.

  • Jetzt WICHTIG! Bevor Sie auf die Option "Importieren" in der oberen Leiste klicken, wählen Sie Ihre Datenbank auf der linken Seite aus (in der grauen Leiste oben steht PHP Myadmin, darunter zwei Optionen: Informationsschema und Name der Datenbank, bei der Sie sich gerade angemeldet haben.

  • Sobald Sie auf die Datenbank klicken, die Sie gerade erstellt / angemeldet haben, wird diese Datenbank angezeigt, und klicken Sie dann auf die Importoption.

Das hat den Trick für mich getan. Hoffe wirklich das hilft


Sie würden denken, wenn Sie nicht bereits in der Datenbank wären, gäbe es auf der Seite eine Option, mit der Sie eine auswählen können.
Andy Mercer

15
  • Bearbeiten Sie Ihre SQLDatei mit Notepad oder Notepad ++
  • Fügen Sie die folgenden 2 Zeilen hinzu:

CREATE DATABASE NAME; USE NAME;


Wie können wir für den Fall einer WordPress-Datenbankdatei schreiben, während ich versuche, mit MySql Workbench zu importieren, aber keine Datenbank ausgewählt bekomme
Rahul S

8

Wenn Sie eine Datenbank importieren, müssen Sie zuerst eine Datenbank mit demselben Namen erstellen, diese dann auswählen und dann die vorhandene Datenbank dorthin importieren.

Hoffe es funktioniert bei dir!


Bitte fügen Sie Ihrer Antwort einige Details hinzu, in denen Ihre Schritte erläutert werden.
Starx

7

Für MySQL Workbench

  1. Wählen Sie die Datenbank auf der Registerkarte Schemas aus, indem Sie mit der rechten Maustaste klicken.
  2. Legen Sie die Datenbank als Standardschema fest

Geben Sie hier die Bildbeschreibung ein


2

Zitat ivan n: "Wenn Sie eine Datenbank importieren, müssen Sie zuerst eine mit demselben Namen erstellen, dann auswählen und dann die vorhandene Datenbank dorthin importieren. Ich hoffe, es funktioniert für Sie!"

Dies sind die Schritte: Erstellen Sie eine Datenbank, z. B. my_db1, utf8_general_ci. Klicken Sie dann, um in diese Datenbank zu gelangen. Klicken Sie dann auf "Importieren" und wählen Sie die Datenbank aus: my_db1.sql

Das sollte alles sein.


Dies sollte ein Kommentar unter Iwans Antwort sein, damit er seine Antwort ändern kann, um Ihre Schritte einzuschließen.
Navigatron

1

Wählen Sie zuerst die Datenbank aus: USE db_name

Erstellen Sie dann die Tabelle: CREATE TABLE tb_name (ID int, Name varchar (255), Gehalt int, Stadt varchar (255));

Dies für die Syntax der MySQL 5.5-Version


1

Seien Sie vorsichtig mit leeren Passwörtern

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

fragt nach einem Passwort und beschwert sich mit mysqldump: Got error: 1046: "No database selected" when selecting the database

Das Problem ist, dass für die -pOption kein Leerzeichen zwischen -pund dem Kennwort vorhanden sein muss.

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

das Problem gelöst (Anführungszeichen werden nicht mehr benötigt).


0

Obwohl dies ein ziemlich alter Thread ist, habe ich gerade etwas herausgefunden. Ich habe eine neue Datenbank erstellt, dann einen Benutzer hinzugefügt und schließlich phpMyAdmin zum Hochladen der SQL-Datei verwendet. totales Versagen. Das System erkennt nicht, welche DB ich anstrebe ...

Wenn ich neu anfange, OHNE zuerst einen neuen Benutzer anzuhängen und dann denselben phpMyAdmin-Import durchzuführen, funktioniert dies einwandfrei.


0

Ich wollte nur hinzufügen: Wenn Sie eine Datenbank in mySQL auf einer Live-Site erstellen, gehen Sie zu PHPMyAdmin und die Datenbank wird nicht angezeigt. Melden Sie sich bei cPanel ab, melden Sie sich wieder an, öffnen Sie PHPMyAdmin, und es sollte jetzt vorhanden sein.


0

Als zusätzliche Sicherheit können Sie bei der Arbeit mit mehreren DBs im selben Skript die DB in der Abfrage angeben, z. B. "create table my_awesome_db.really_cool_table ...".


0

Ich bin spät dran, denke ich:] soory,

Wenn Sie wie ich hier sind und nach der Lösung suchen, wenn dieser Fehler mit mysqldumpanstelle von MySQL auftritt , probieren Sie diese Lösung aus, die ich zufällig auf einer deutschen Website gefunden habe. Deshalb wollte ich sie mit Obdachlosen teilen, die Kopfschmerzen wie ich haben.

Das Problem tritt also auf, weil der -databasesParameter vor dem Datenbanknamen fehlt

Ihr Befehl muss also so aussehen:

mysqldump -pdbpass -udbuser --databases dbname

Eine andere Ursache für das Problem in meinem Fall war, dass ich mich auf lokaler Ebene entwickle und der rootBenutzer kein Passwort hat. In diesem Fall müssen Sie --password=stattdessen verwenden -pdbpass, also war mein letzter Befehl:

mysqldump -udbuser --password= --databases dbname

Link zum vollständigen Thread: https://marius.bloggt-in-braunschweig.de/2016/04/29/solution-mysqldump-no-database-selected-when-selecting-the-database/


-1

jst eine neue DB in mysql.Select schaffen , dass neue DB (wenn Sie jetzt auf der Oberseite mit MySQL phpmyadmin r wie ‚Server sein it'l:. . . . * >> Datenbank) zu importieren Registerkarte gehen .Now file.Import wählen !

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.