J'ai une base de données qui est assez grande, donc je veux l'exporter à l'aide de l'invite de commandes, mais je ne sais pas comment.
J'utilise WAMP.
J'ai une base de données qui est assez grande, donc je veux l'exporter à l'aide de l'invite de commandes, mais je ne sais pas comment.
J'utilise WAMP.
Réponses:
Vérifiez d'abord si votre ligne de commande reconnaît la commande mysql. Sinon, allez à la commande et tapez:
set path=c:\wamp\bin\mysql\mysql5.1.36\bin
Utilisez ensuite cette commande pour exporter votre base de données:
mysqldump -u YourUser -p YourDatabaseName > wantedsqlfile.sql
Vous serez ensuite invité à entrer le mot de passe de la base de données .
Cela exporte la base de données vers le chemin dans lequel vous vous trouvez actuellement, lors de l'exécution de cette commande
Remarque: voici quelques instructions détaillées concernant l'importation et l'exportation
-p
et thepassword
.
-p
et vous serez ensuite invité à entrer le mot de passe. De cette façon, vous évitez d'enregistrer votre mot de passe, par exemple à.bash_history
Utilisez simplement la commande suivante,
Pour l'export:
mysqldump -u [user] -p [db_name] | gzip > [filename_to_compress.sql.gz]
Pour l'importation:
gunzip < [compressed_filename.sql.gz] | mysql -u [user] -p[password] [databasename]
Remarque: Il n'y a pas d'espace entre le mot-clé '-p' et votre mot de passe.
gzip -9
rend le fichier résultant un peu plus petit, car la compression maximale est utilisée.
Tout d'abord, ouvrez l'invite de commande, puis ouvrez le répertoire bin dans cmd (j'espère que vous êtes au courant des commandes cmd ), accédez au répertoire bin de votre dossier MySql dans les fichiers du programme WAMP .
exécuter la commande
mysqldump -u db_username -p database_name > path_where_to_save_sql_file
appuyez sur enter le système exportera une base de données particulière et créera un fichier sql à l'emplacement donné.
j'espère que vous l'avez compris :) si vous avez des questions, faites-le moi savoir.
Eh bien, vous pouvez utiliser la commande ci-dessous,
mysqldump --databases --user=root --password your_db_name > export_into_db.sql
et le fichier généré sera disponible dans le même répertoire que celui où vous avez exécuté cette commande.
Vous pouvez trouver plus sur la référence officielle pour mysqldump
: Import Export MySQL DB
Remarque : utilisez --databases
au lieu de--database
puisque le dernier n'est plus pris en charge.
Prendre plaisir :)
mysqldump: [ERROR] unknown option '--database'
mais son exclusion --database
a fonctionné.
Accédez à l'invite de commande sur ce chemin,
C:\Program Files (x86)\MySQL\MySQL Server 5.0\bin>
Donnez ensuite cette commande pour exporter votre base de données ( pas d'espace après -p )
mysqldump -u[username] -p[userpassword] yourdatabase > [filepath]wantedsqlfile.sql
Localisez votre instance mysql avec:
which mysql
Si cela est correct, exportez avec ce qui suit (sinon accédez à l'instance mysql dans votre dossier mamp dans bin):
mysqldump -u [username] -p [password] [dbname] > filename.sql
Et si vous souhaitez le zipper en même temps:
mysqldump -u [username] -p [password] [db] | gzip > filename.sql.gz
Vous pouvez ensuite déplacer ce fichier entre les serveurs avec:
scp user@xxx.xxx.xxx.xxx:/path_to_your_dump/filename.sql.gz your_detination_path/
(où xxx.xxx.xxx.xxx est l'adresse IP du serveur)
Et puis importez-le avec:
gunzip filename.sql.gz | mysql -u [user] -p [password] [database]
password
de la ligne de commande: mysqldump -u [username] -p [dbname]> filename.sql Cela empêche les gens de rechercher votre mot de passe dans votre historique.
mysqldump -u tutorials -p'mypassword' -h 127.0.0.1 database_name > file_backup_database_name_.sql
Attention: L'utilisation d'un mot de passe sur l'interface de ligne de commande peut être peu sûre.
Pour exporter également des PROCEDURES, des FONCTIONS et des TRIGGER, ajoutez un --routines
paramètre:
mysqldump -u YourUser -p YourDatabaseName --routines > wantedsqlfile.sql
--routines
fait la différence :) Des conseils sur la façon d'exporter uniquement les PROCÉDURES, FONCTIONS et DÉCLENCHEURS? Pour ceux qui ont oublié le switch et exporté une DB "pure" sans les "algorithmes" :)
--events
est nécessaire pour vider les événements du planificateur d'événements et les déclencheurs sont toujours exportés, sauf indication --skip-triggers
contraire (selon 7.4.5.3 Dumping Stored Programs )
Donnez cette commande pour exporter votre base de données, cela inclura également la date
mysqldump -u[username] -p[userpassword] --databases yourdatabase | gzip > /home/pi/database_backup/database_`date '+%m-%d-%Y'`.sql.gz
(pas d'espace après -p)
--databases
insérera des instructions comme CREATE DATABASE XYZ;
et USE XYZ;
, ce qui n'est pas pratique lors de l'importation du SQL dans une autre base de données avec un autre nom ...
J'ai installé mon serveur wamp dans D: drive donc vous devez aller dans le chemin suivant depuis la ligne de commande ur -> (et si vous avez installé ur wamp dans c: drive, remplacez simplement le d: wtih c: ici)
D:\>cd wamp
D:\wamp>cd bin
D:\wamp\bin>cd mysql
D:\wamp\bin\mysql>cd mysql5.5.8 (whatever ur verserion will be displayed here use keyboard Tab button and select the currently working mysql version on your server if you have more than one mysql versions)
D:\wamp\bin\mysql\mysql5.5.8>cd bin
D:\wamp\bin\mysql\mysql5.5.8\bin>mysqldump -u root -p password db_name > "d:\backupfile.sql"
ici root est l'utilisateur de mon mot de passe phpmyadmin est le mot de passe de phpmyadmin donc si vous n'avez défini aucun mot de passe pour root rien de type à cet endroit, db_name est la base de données (pour laquelle la base de données prend la sauvegarde), backupfile.sql est le fichier dans lequel vous voulez une sauvegarde de votre base de données et vous pouvez également changer l'emplacement du fichier de sauvegarde (d: \ backupfile.sql) de n'importe quel autre endroit sur votre ordinateur
-p
et password
?
mysqldump -h [host] -p -u [user] [database name] > filename.sql
Exemple dans localhost
mysqldump -h localhost -p -u root cookbook > cookbook.sql
Le problème avec toutes ces solutions (en utilisant le >
caractère redirecteur) est que vous écrivez votre vidage depuis stdout, ce qui peut casser le codage de certains caractères de votre base de données.
Si vous avez un problème d'encodage de caractères. Tel que :
ERREUR 1064 (42000): vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à la version de votre serveur MySQL pour la bonne syntaxe à utiliser près de ...
ensuite, vous DEVEZ utiliser l' -r
option pour écrire le fichier.
MySQL
mysqldump -u user -pyour-password-without-space-between-letter-p-and-your-password --default-character-set=utf8 --host $HOST database-name -r dump.sql
Utilisation de Docker
docker exec --rm -v $pwd:dump -it mysql:5:7 mysqldump -u user -pyour-password-without-space-between-letter-p-and-your-password --default-character-set=utf8 --host $HOST database-name -r dump/dump.sql
Remarque: cela monte le chemin actuel en tant que vidage à l'intérieur de l'instance.
Nous avons trouvé la réponse ici
Inversement, n'utilisez pas <
pour importer votre vidage dans votre base de données, encore une fois, vos caractères non utf8 peuvent ne pas être passés; mais préférez l'option source.
mysql -u user -pYourPasswordYouNowKnowHow --default-character-set=utf8 your-database
mysql> SET names 'utf8'
mysql> SOURCE dump.sql
(mysqldump.exe full path) -u (user name) -p (password) (database name) > (export database file full path)
c:>d:\wamp\bin\mysql\mysql5.6.12\bin\mysqldump.exe -u root -p mydbname > d:\mydb.sql
où d: \ wamp \ bin \ mysql \ mysql5.6.12 \ bin \ mysqldump.exe sera votre chemin mysqldump.exe réel, mydbname est le nom de la base de données que vous souhaitez exporter et d: \ mydb.sql est le chemin où vous souhaitez stocker la base de données exportée.
J'ai utilisé un serveur Wamp. J'ai essayé
c:\wamp\bin\mysql\mysql5.5.8\bin\mysqldump -uroot -p db_name > c:\somefolder\filename.sql
root
est mon nom d'utilisateur pour mysql, et si vous avez un mot de passe, spécifiez-le avec:
-p[yourpassword]
Esperons que ça marche.
Pour Windows OS :
Lorsque vous obtenez l'erreur 1064 mysql (42000) lors de la tentative d'exécution de la commande mysqldump , quittez le terminal actuel. Et exécutez la commande mysqldump.
mysql>exit
c:\xampp\mysql\bin>mysqldump -uroot -p --databases [database_name] > name_for_export_db.sql
J'essayais de prendre le vidage de la base de données qui s'exécutait sur le docker et est venu avec la commande ci-dessous pour obtenir la même chose:
docker exec <container_id/name>
/ usr / bin / mysqldump -u <db_username>
--password = <db_password>
db_name
> .sql
J'espère que cela t'aides!
Vous pouvez utiliser ce script pour exporter ou importer n'importe quelle base de données à partir du terminal indiqué sur ce lien: https://github.com/Ridhwanluthra/mysql_import_export_script/blob/master/mysql_import_export_script.sh
echo -e "Welcome to the import/export database utility\n"
echo -e "the default location of mysqldump file is: /opt/lampp/bin/mysqldump\n"
echo -e "the default location of mysql file is: /opt/lampp/bin/mysql\n"
read -p 'Would like you like to change the default location [y/n]: ' location_change
read -p "Please enter your username: " u_name
read -p 'Would you like to import or export a database: [import/export]: ' action
echo
mysqldump_location=/opt/lampp/bin/mysqldump
mysql_location=/opt/lampp/bin/mysql
if [ "$action" == "export" ]; then
if [ "$location_change" == "y" ]; then
read -p 'Give the location of mysqldump that you want to use: ' mysqldump_location
echo
else
echo -e "Using default location of mysqldump\n"
fi
read -p 'Give the name of database in which you would like to export: ' db_name
read -p 'Give the complete path of the .sql file in which you would like to export the database: ' sql_file
$mysqldump_location -u $u_name -p $db_name > $sql_file
elif [ "$action" == "import" ]; then
if [ "$location_change" == "y" ]; then
read -p 'Give the location of mysql that you want to use: ' mysql_location
echo
else
echo -e "Using default location of mysql\n"
fi
read -p 'Give the complete path of the .sql file you would like to import: ' sql_file
read -p 'Give the name of database in which to import this file: ' db_name
$mysql_location -u $u_name -p $db_name < $sql_file
else
echo "please select a valid command"
fi