Errore 1046 Nessun database selezionato, come risolvere?


297

Errore SQL query:

--
-- 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 ha detto:

#1046 - No database selected

ho bisogno di aiuto qui.


7
Nel caso qualcuno fosse interessato, è anche possibile specificare il nome del database tramite il comando CLI senza modificare il file di importazione. mysql -u root -p databasename < import.sql
Sam Dufel,

quello che mi è successo è stato: creare uno schema, compilare il nome del database, quindi dire "fail, nessun database selezionato". riapre il workbench, vedo il database che non sono riuscito a creare. Quindi scelgo il database che ho appena creato, apro un file .sql ed eseguo, sia con la creazione del database che con le istruzioni del database, si lamenta "fallire nessun database selezionato" di nuovo. riapre il banco di lavoro, i tavoli sono tutti costruiti. Sistema MAC, banco di lavoro 6.3.3
Tiina,

Risposte:


410

Devi dire a MySQL quale database utilizzare:

USE database_name;

prima di creare una tabella.

Nel caso in cui il database non esista, è necessario crearlo come:

CREATE DATABASE database_name;

seguito da:

USE database_name;

8
Nel mio caso, avevo usato mysqldump per esportare un database e stavo eseguendo questo durante l'importazione. Ho dovuto solo modificare il file sql esportato per aggiungere questi due comandi nella parte superiore.
bh5k,

Grazie! Questo è quello di cui avevo bisogno. Avevo uno script per creare il mio database e le mie tabelle ma le tabelle non venivano create perché dovevo inserire il USE tablenamecomando.
ckpepper02,

1
Scrivi: CREATE DATABASE IF NOT EXISTS database_name ; USE database_name;funziona se il database è già stato creato o meno.
Stian,

50

Puoi anche dire a MySQL quale database usare (se lo hai già creato):

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

7
Perché non mysql example -u example_user -p < ./example.sqlinvece?
Pacerier,

36

Ho riscontrato lo stesso errore quando ho provato a importare un database creato da prima. Ecco cosa ho fatto per risolvere questo problema:

1- Crea nuovo database

2- Usalo per usecomando

inserisci qui la descrizione dell'immagine

3- Riprova

Questo funziona per me.


28

Se stai provando a farlo tramite la riga di comando ...

Se si sta tentando di eseguire l'istruzione CREATE TABLE dall'interfaccia della riga di comando, è necessario specificare il database in cui si sta lavorando prima di eseguire la query:

USE your_database;

Ecco la documentazione .

Se stai provando a farlo tramite MySQL Workbench ...

... è necessario selezionare il database / catalogo appropriato nel menu a discesa che si trova sopra la scheda: Browser degli oggetti:. È possibile specificare lo schema / database / catalogo predefinito per la connessione: fare clic sulle opzioni "Gestisci connessioni" sotto l'intestazione Sviluppo SQL della schermata iniziale di Workbench.

appendice

Tutto questo presuppone che ci sia un database in cui si desidera creare la tabella all'interno; in caso contrario, è necessario creare il database prima di ogni altra cosa:

CREATE DATABASE your_database;

Utilizzo di MySQL Workbench: potresti fornire un'immagine con la posizione del menu a discesa?
AdrianRM,

Sto pensando che questo potrebbe riferirsi a una versione precedente di MySQL Workbench. Ho appena estratto la versione più recente e non vedo una scheda "browser oggetti" da nessuna parte.
Tim Keating

Sembra che tu debba usare il USE database;comando, anche in MySQL Workbench (sono in v5.2.47) se ricevi questo errore. È necessario eseguirlo solo una volta per scheda della query: tutte le esecuzioni successive su quella scheda sembrano utilizzare correttamente il database.
DACrosby

Ciao, quindi per wordpress sql come possiamo "usare" nel file SQL. Potete per favore chiarirlo ancora una volta. Sto riscontrando il problema ora.
Rahul S,

21

Se lo stai facendo tramite phpMyAdmin:

  • Presumo che tu abbia già creato un nuovo database MySQL sul sito live (per sito live intendo la società con cui stai ospitando (nel mio caso Bluehost)).

  • Vai a phpMyAdmin sul sito live - accedi al database che hai appena creato.

  • Ora IMPORTANTE! Prima di fare clic sull'opzione "importa" nella barra in alto, seleziona il tuo database sul lato sinistro della pagina (la barra grigia, in alto ha scritto PHP Myadmin, sotto di essa due opzioni: information_schema e nome del database al quale hai appena effettuato l'accesso.

  • dopo aver fatto clic sul database appena creato / effettuato l'accesso, verrà mostrato quel database, quindi fare clic sull'opzione di importazione.

Questo ha fatto il trucco per me. Spero davvero che aiuti


Penseresti che se non fossi già nel database, ci sarebbe un'opzione sulla pagina per permetterti di selezionarne uno.
Andy Mercer,

15
  • Modifica il tuo SQLfile usando Notepad o Notepad ++
  • aggiungere la seguente riga 2:

CREATE DATABASE NAME; USE NAME;


Come possiamo scrivere nel caso di file di database wordpress mentre sto cercando di importare usando MySql Workbench ma non ho selezionato alcun database
Rahul S

8

Se si importa un database, è necessario crearne prima uno con lo stesso nome, quindi selezionarlo e quindi IMPORTARE il database esistente.

Spero che funzioni per te!


Aggiungi alcuni dettagli alla tua risposta spiegando i tuoi passi.
Starx,

7

Per MySQL Workbench

  1. Selezionare il database dalla scheda Schemi facendo clic con il tasto destro del mouse.
  2. Imposta il database come schema predefinito

inserisci qui la descrizione dell'immagine


2

quoting ivan n: "Se si importa un database, è necessario crearne uno prima con lo stesso nome, quindi selezionarlo e quindi IMPORTARE il database esistente. Spero che funzioni per te!"

Questi sono i passaggi: Creare un database, ad esempio my_db1, utf8_general_ci. Quindi fare clic per accedere a questo database. Quindi fare clic su "importa" e selezionare il database: my_db1.sql

Questo dovrebbe essere tutto.


Questo dovrebbe essere un commento sotto la risposta di Ivan, in modo che possa cambiare la sua risposta per includere i tuoi passi.
Navigatron,

1

selezionare prima il database: USE nome_db

quindi crea la tabella: CREATE TABLE tb_name (id int, nome varchar (255), stipendio int, città varchar (255));

questo per la sintassi della versione di mysql 5.5


1

fai attenzione alle password vuote

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

chiederà una password e si lamenterà mysqldump: Got error: 1046: "No database selected" when selecting the database

il problema è che l' -popzione richiede che non ci sia spazio tra -pe la password.

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

risolto il problema (le virgolette non sono più necessarie).


0

Anche se questo è un thread piuttosto vecchio, ho appena scoperto qualcosa. Ho creato un nuovo database, quindi ho aggiunto un utente e infine sono andato a utilizzare phpMyAdmin per caricare il file .sql. fallimento totale. Il sistema non riconosce quale DB sto mirando a ...

Quando ricomincio da capo SENZA collegare prima un nuovo utente e quindi eseguire la stessa importazione phpMyAdmin, funziona perfettamente.


0

Volevo solo aggiungere: se crei un database in mySQL su un sito live, vai in PHPMyAdmin e il database non viene visualizzato - disconnetti cPanel quindi accedi nuovamente, apri PHPMyAdmin e dovrebbe essere lì adesso.


0

Per un ulteriore elemento di sicurezza, quando si lavora con più DB nello stesso script è possibile specificare il DB nella query, ad esempio "crea tabella my_awesome_db.really_cool_table ...".


0

Sono in ritardo, penso:] soory,

Se sei qui come me alla ricerca della soluzione quando si verifica questo errore mysqldumpinvece di mysql, prova questa soluzione che ho trovato su un sito tedesco per caso, quindi volevo condividere con i senzatetto che hanno mal di testa come me.

Quindi il problema si verifica perché il -databasesparametro di mancanza prima del nome del database

Quindi il tuo comando deve assomigliare a questo:

mysqldump -pdbpass -udbuser --databases dbname

Un'altra causa del problema nel mio caso è che sto sviluppando su local e l' rootutente non ha una password, quindi in questo caso è necessario utilizzare --password=invece di -pdbpass, quindi il mio comando finale è stato:

mysqldump -udbuser --password= --databases dbname

Link alla discussione completa (in tedesco): https://marius.bloggt-in-braunschweig.de/2016/04/29/solution-mysqldump-no-database-selected-when-selecting-the-database/


-1

jst creare un nuovo DB mysql.Select che nuovo DB (se r utilizzando mysql phpmyadmin ora sulla parte superiore it'l essere come 'Server:. . . . * >> Database) .Now vai alla scheda di importazione selezionare file.Import !

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.