Je ne comprends pas comment importer un fichier de vidage SQL. Je n'arrive pas à importer la base de données sans d'abord la créer dans MySQL.
C'est l'erreur affichée quand database_name
n'a pas encore été créé:
username
= nom d'utilisateur de quelqu'un ayant accès à la base de données sur le serveur d'origine.database_name
= nom de la base de données du serveur d'origine
$ mysql -u username -p -h localhost database_name < dumpfile.sql
Enter password:
ERROR 1049 (42000): Unknown database 'database_name'
Si je me connecte à MySQL en tant que root et crée la base de données, database_name
mysql -u root
create database database_name;
create user username;# same username as the user from the database I got the dump from.
grant all privileges on database_name.* to username@"localhost" identified by 'password';
exit mysql
puis essayez à nouveau d'importer le dump SQL:
$ mysql -u username -p database_name < dumpfile.sql
Enter password:
ERROR 1007 (HY000) at line 21: Can't create database 'database_name'; database exists
Comment suis-je censé importer le fichier de vidage SQL?
Ouvrez le fichier SQL et commentez la ligne qui tente de créer la base de données existante.
C'est un bogue connu sous MySQL.
Comme vous pouvez le constater, ce problème est connu depuis 2008 et ils ne l’ont pas encore résolu !!!
SOLUTION DE CONTOURNEMENT
Vous devez d’abord créer la base de données à importer. Il n'a pas besoin de tables. Ensuite, vous pouvez importer votre base de données.
commencez par lancer votre ligne de commande MySQL (nom d'utilisateur et mot de passe si nécessaire)C:\>mysql -u user -p
Créez votre base de données et quittez
mysql> DROP DATABASE database;
mysql> CREATE DATABASE database;
mysql> Exit
Importez votre base de données sélectionnée à partir du fichier de vidageC:\>mysql -u user -p -h localhost -D database -o < dumpfile.sql
Vous pouvez remplacer localhost par un IP ou un domaine pour tout serveur MySQL que vous souhaitez importer dans . La raison de la commande DROP dans l'invite mysql est pour être sûr de commencer avec une base de données vide et propre.
Il semble que votre vidage de la base de données inclue les informations nécessaires à la création de la base de données. Donc, ne donnez pas à la ligne de commande MySQL un nom de base de données. Il créera la nouvelle base de données et y basculera pour effectuer l'importation.
Si vous créez votre base de données en administrateur direct ou cpanel, vous devez éditer votre SQL avec notepad ou notepad ++ et modifier la commande CREATE DATABASE
en CREATE DATABASE IF NOT EXISTS
en ligne22
Je crée la base de données moi-même en utilisant la ligne de commande. Ensuite, essayez à nouveau d'importer, cela fonctionne.