web-dev-qa-db-fra.com

Erreur 1046 Pas de base de données sélectionnée, comment résoudre?

Erreur Requête 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 a déclaré: 

#1046 - No database selected

besoin d'aide ici.

237
steph

Vous devez indiquer à MySQL quelle base de données utiliser:

USE database_name;

avant de créer une table.

Au cas où la base de données n'existe pas, vous devez la créer comme suit:

CREATE DATABASE database_name;

suivi par: 

USE database_name;
349
codaddict

Vous pouvez également indiquer à MySQL quelle base de données utiliser (si vous l'avez déjà créée):

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

Si vous essayez de le faire via la ligne de commande ...

Si vous essayez d'exécuter l'instruction CREATE TABLE à partir de l'interface de ligne de commande, vous devez spécifier la base de données sur laquelle vous travaillez avant d'exécuter la requête:

USE your_database;

Voici la documentation .

Si vous essayez de le faire via MySQL Workbench ...

... vous devez sélectionner la base de données/catalogue appropriée dans le menu déroulant situé au-dessus de l'onglet: Navigateur d'objets:. Vous pouvez spécifier le schéma/la base de données/le catalogue par défaut pour la connexion - cliquez sur les options "Gérer les connexions" sous l'en-tête Développement SQL de l'écran de démarrage de Workbench.

Addenda

Tout cela suppose qu'il y ait une base de données sur laquelle vous voulez créer la table - sinon, vous devez créer la base de données avant toute autre chose:

CREATE DATABASE your_database;
27
OMG Ponies

J'ai rencontré la même erreur lorsque j'ai essayé d'importer une base de données créée auparavant. Voici ce que j'ai fait pour résoudre ce problème:

1- Créer une nouvelle base de données 

2- Utilisez-le avec la commande use

 enter image description here

3- Réessayer 

Cela fonctionne pour moi.

27
Mina Fawzy

Si vous faites cela via phpMyAdmin:

  • Je suppose que vous avez déjà créé une nouvelle base de données MySQL sur le site Live (par site actif, j'entends la société avec laquelle vous hébergez (dans mon cas, Bluehost)).

  • Allez sur phpMyAdmin on live site - connectez-vous à la base de données que vous venez de créer.

  • Maintenant IMPORTANT! Avant de cliquer sur l'option "importer" de la barre supérieure, sélectionnez votre base de données dans la partie gauche de la page (barre grise, sur laquelle PHP Myadmin est écrit en haut, sous deux options: connecté à.

  • une fois que vous avez cliqué sur la base de données que vous venez de créer/connectez, elle vous montrera cette base de données, puis cliquez sur l'option d'importation. 

Cela a fait le tour pour moi. Espérons vraiment que cela aide

17
Roanna
  • Editez votre fichier SQL en utilisant Notepad ou Notepad ++
  • ajoutez les 2 lignes suivantes:

CREATE DATABASE NAME; USE NAME;

12
Ayham AlKawi

Si vous importez une base de données, vous devez d'abord en créer une avec le même nom, puis la sélectionner et IMPORTER ensuite la base de données existante.

J'espère que ça marche pour toi!

7
ivan n

citant ivan n: "Si vous importez une base de données, vous devez en créer une d’abord avec le même nom, puis la sélectionner, puis IMPORTER la base de données existante dans celle-ci . J'espère que cela fonctionne pour vous!"

Voici les étapes à suivre: Créer une base de données, par exemple my_db1, utf8_general_ci . Cliquez ensuite sur pour aller à l'intérieur de cette base de données . Cliquez ensuite sur "importer" et sélectionnez la base de données: my_db1.sql

Cela devrait être tout.

2
iversoncru

première sélection de base de données: USE nom_base

then table: CREATE TABLE nom_base ( id int, nom varchar (255), salaire int, ville varchar (255) );

ceci pour la syntaxe de la version mysql 5.5

1
veeru666

Pour MySQL Workbench

  1. Sélectionnez la base de données dans l'onglet Schémas en cliquant avec le bouton droit de la souris.
  2. Définir la base de données en tant que schéma par défaut

 enter image description here

1
Eric Korolev

Bien que ce soit un très vieux fil, je viens de découvrir quelque chose. J'ai créé une nouvelle base de données, puis ajouté un utilisateur et je suis finalement allé à utiliser phpMyAdmin pour télécharger le fichier .sql. échec total. Le système ne reconnaît pas quelle base de données je vise ... 

Quand je commence à nouveau SANS attacher d'abord un nouvel utilisateur, puis que j'effectue la même importation phpMyAdmin, tout fonctionne correctement. 

0
zipzit

Pour plus de sécurité, lorsque vous utilisez plusieurs bases de données dans le même script, vous pouvez spécifier la base de données dans la requête, par exemple. "créer la table my_awesome_db.really_cool_table ...".

0
William T. Mallard

faire attention aux mots de passe vierges

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

demandera un mot de passe et se plaindra avec mysqldump: Got error: 1046: "No database selected" when selecting the database

le problème est que l'option -p nécessite qu'il n'y ait pas d'espace entre -p et le mot de passe.

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

résolu le problème (les guillemets ne sont plus nécessaires).

0
user3338098

Je voulais juste ajouter: Si vous créez une base de données dans mySQL sur un site actif, accédez à PHPMyAdmin et si la base de données ne s'affiche pas - déconnectez-vous de cPanel, puis reconnectez-vous, ouvrez PHPMyAdmin et vous devriez y être.

0
the10thplanet

Je suis en retard je pense:] soory, 

Si vous êtes comme moi à la recherche de la solution lorsque cette erreur se produit avec mysqldump au lieu de mysql, essayez cette solution trouvée par hasard sur un site Web allemand. Je souhaitais donc partager avec des sans-abri souffrant de maux de tête comme moi.

Donc, le problème se produit parce que le paramètre lack -databases avant le nom de la base de données

Donc, votre commande doit ressembler à ceci:

mysqldump -pdbpass -udbuser --databases dbname

Une autre cause du problème dans mon cas était que je me développais sur local et que l'utilisateur root n'avait pas de mot de passe. Dans ce cas, vous devez donc utiliser --password= au lieu de -pdbpass; ma dernière commande était donc:

mysqldump -udbuser --password= --databases dbname

Lien vers le fil complet (en allemand): https://marius.bloggt-in-braunschweig.de/2016/04/29/solution-mysqldump-no-database-selected-when-selecting-the-database/

0
MoolsBytheway