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

297

Erreur de 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.

steph
la source
7
Si quelqu'un est intéressé, vous pouvez également spécifier le nom de la base de données via la commande CLI sans modifier le fichier d'importation. mysql -u root -p databasename < import.sql
Sam Dufel
ce qui m'est arrivé était: créer un schéma, rempli le nom de la base de données, puis il dit "échec, aucune base de données sélectionnée". rouvrir le plan de travail, je vois la base de données que je viens de créer. Ensuite, je choisis la base de données que je viens de créer, puis j'ouvre un fichier .sql et je l'exécute, avec à la fois la création de la base de données et l'utilisation des instructions de base de données, il se plaint de "échouer aucune base de données sélectionnée" à nouveau. rouvrir l'établi, les tables sont toutes construites. Système MAC, établi 6.3.3
Tiina

Réponses:

410

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

USE database_name;

avant de créer une table.

Si la base de données n'existe pas, vous devez la créer en tant que:

CREATE DATABASE database_name;

suivi par:

USE database_name;
codaddict
la source
8
Dans mon cas, j'avais utilisé mysqldump pour exporter une base de données et le rencontrais lors de l'importation. J'ai juste eu à éditer le fichier sql exporté pour ajouter ces deux commandes en haut.
bh5k
Merci! Voilà ce dont j'avais besoin. J'avais un script pour créer ma base de données et mes tables mais les tables n'étaient pas créées car j'avais besoin d'insérer la USE tablenamecommande.
ckpepper02
1
Écriture: CREATE DATABASE IF NOT EXISTS database_name ; USE database_name;cela fonctionne que la base de données soit déjà créée ou non.
Stian
50

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
Shay Anderson
la source
7
Pourquoi pas à la mysql example -u example_user -p < ./example.sqlplace?
Pacerier
36

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 par usecommande

entrez la description de l'image ici

3- Réessayez

Cela fonctionne pour moi.

Mina Fawzy
la source
28

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 dans 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 / le catalogue approprié 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 du Workbench.

Addenda

Tout cela suppose qu'il existe une base de données dans laquelle vous souhaitez créer la table - sinon, vous devez créer la base de données avant toute autre chose:

CREATE DATABASE your_database;
Poneys OMG
la source
Utilisation de MySQL Workbench: Pourriez-vous s'il vous plaît fournir une image avec l'emplacement du menu déroulant?
AdrianRM
Je pense que cela pourrait faire référence à une ancienne version de MySQL Workbench. Je viens de tirer la version la plus récente et je ne vois aucun onglet "navigateur d'objets" nulle part.
Tim Keating
On dirait que vous devez utiliser la USE database;commande, même dans MySQL Workbench (je suis en v5.2.47) si vous obtenez cette erreur. Il suffit de l'exécuter une fois par onglet de requête - toutes les exécutions suivantes sur cet onglet semblent utiliser correctement la base de données.
DACrosby
Salut, donc pour wordpress sql comment pouvons-nous "utiliser" dans un fichier SQL. Pouvez-vous clarifier une fois de plus cette J'ai le problème maintenant.
Rahul S
21

Si vous le faites via phpMyAdmin:

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

  • Accédez à phpMyAdmin sur le site en direct - connectez-vous à la base de données que vous venez de créer.

  • Maintenant IMPORTANT! Avant de cliquer sur l'option "importer" dans la barre supérieure, sélectionnez votre base de données sur le côté gauche de la page (barre grise, en haut PHP Myadmin écrit, en dessous deux options: schéma_informations et nom de la base de données à laquelle vous venez de vous connecter.

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

Cela a fait l'affaire pour moi. J'espère vraiment que cela aide

Roanna
la source
Vous penseriez que si vous n'étiez pas déjà sur la base de données, il y aurait une option sur la page pour vous permettre d'en sélectionner une.
Andy Mercer
15
  • Modifiez votre SQLfichier à l'aide du Bloc - notes ou du Bloc - notes ++
  • ajoutez les 2 lignes suivantes:

CREATE DATABASE NAME; USE NAME;

Ayham AlKawi
la source
Comment pouvons-nous écrire dans le cas d'un fichier de base de données wordpress alors que j'essaie d'importer en utilisant MySql Workbench mais sans obtenir de base de données sélectionnée
Rahul S
8

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, puis y importer la base de données existante.

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

ivan n
la source
Veuillez ajouter quelques détails sur votre réponse en expliquant vos étapes.
Starx
7

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 comme schéma par défaut

entrez la description de l'image ici

Eric Korolev
la source
2

citant ivan n: "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, puis y importer la base de données existante. J'espère que cela fonctionne pour vous!"

Voici les étapes: Créez une base de données, par exemple my_db1, utf8_general_ci. Cliquez ensuite pour accéder à cette base de données. Cliquez ensuite sur "importer" et sélectionnez la base de données: my_db1.sql

Ça devrait être tout.

iversoncru
la source
Cela devrait être un commentaire sous la réponse d'Ivan, afin qu'il puisse changer sa réponse pour inclure vos étapes.
Navigatron
1

sélectionnez d'abord la base de données: USE db_name

puis table de création: CREATE TABLE nom_tb (id int, nom varchar (255), salaire int, ville varchar (255));

ceci pour la syntaxe de la version mysql 5.5

veeru666
la source
1

faites attention aux mots de passe vierges

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

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

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

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

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

user3338098
la source
0

Bien que ce soit un fil assez ancien, je viens de découvrir quelque chose. J'ai créé une nouvelle base de données, puis ajouté un utilisateur et j'ai finalement utilisé phpMyAdmin pour télécharger le fichier .sql. échec total. Le système ne reconnaît pas la base de données que je vise ...

Lorsque je commence à zéro SANS attacher d'abord un nouvel utilisateur, puis effectuer la même importation phpMyAdmin, cela fonctionne bien.

zipzit
la source
0

Je voulais juste ajouter: si vous créez une base de données dans mySQL sur un site en direct, allez dans PHPMyAdmin et la base de données ne s'affiche pas - déconnectez-vous de cPanel puis reconnectez-vous, ouvrez PHPMyAdmin, et elle devrait être là maintenant.

the10thplanet
la source
0

Pour un élément de sécurité supplémentaire, lorsque vous travaillez avec 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 ...".

William T. Mallard
la source
0

Je suis en retard je pense:] soory,

Si vous êtes ici comme moi à la recherche de la solution lorsque cette erreur se produit avec mysqldumpau lieu de mysql, essayez par hasard cette solution que j'ai trouvée sur un site allemand, donc je voulais partager avec les sans-abri qui ont des maux de tête comme moi.

Ainsi, le problème se produit car le -databasesparamètre manque avant le nom de la base de données

Votre commande doit donc ressembler à ceci:

mysqldump -pdbpass -udbuser --databases dbname

Une autre cause du problème dans mon cas était que je développe sur local et que l' rootutilisateur n'a pas de mot de passe, donc dans ce cas vous devez utiliser à la --password=place de -pdbpass, donc ma commande finale était:

mysqldump -udbuser --password= --databases dbname

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

MoolsBytheway
la source
-1

JST créer une nouvelle base de données dans mysql.Select ce nouveau DB (si vous r en utilisant MySQL phpMyAdmin maintenant sur le dessus it'l être comme « serveur:. . . . * >> Base de données) .Maintenant allez à l' onglet d'importation sélectionnez file.Import !

cs075
la source