web-dev-qa-db-fra.com

Comment puis-je sauvegarder et restaurer des bases de données MySQL vers et à partir de Dropbox à partir de la ligne de commande?

J'ai quelques bases de données MySQL que je voudrais synchroniser entre deux ordinateurs. Ce que j'aimerais faire, c'est pouvoir disposer d'une commande ou d'un script rapide sur un ordinateur que je peux utiliser pour vider rapidement les bases de données dans un dossier de ma Dropbox. Ensuite, ayez un script de restauration similaire que je peux utiliser pour écraser la base de données existante sur le deuxième ordinateur.

La première étape semble facile. Je suis en mesure de créer un fichier .sql rapide à l'aide de la commande suivante:

mysqldump -u root -p mydatabase > /home/dave/Dropbox/MySQL/mydatabase.sql

C'est de l'autre côté où j'ai des problèmes. Apparemment, MySQL ne me laissera pas facilement écraser le contenu d'une base de données existante avec un nouveau contenu. J'ai essayé deux approches et aucune n'a fonctionné.

J’ai d’abord essayé mysqlimport, mais il vient d’éclater un tas d’instructions sur l’utilisation de la commande, et après avoir regardé sur le Web, il semble que c’est parce que cela ne va tout simplement pas écraser une base de données:

$ mysqlimport -u root -p mydatabase < /home/dave/Dropbox/MySQL/mydatabase.sql

J'ai donc d'abord essayé de supprimer la base de données, mais j'ai eu l'erreur suivante:

$ mysqladmin -u root -p drop mydatabase
Enter password: 
Dropping the database is potentially a very bad thing to do.
Any data stored in the database will be destroyed.
Do you really want to drop the 'mydatabase' database [y/N] y
mysqladmin: DROP DATABASE mydatabase failed;
error: 'Error on delete of './mydatabase//db.opt' (Errcode: 13)'

N'y a-t-il pas une simple commande que je peux utiliser pour extraire la base de données que j'ai sauvegardée d'un ordinateur et lui faire écraser sa contrepartie sur un autre ordinateur? Ces bases de données sont en grande partie les mêmes à tous égards, à l'exception des petits changements quotidiens que je fais.

3
Questioner

Je crois que tout ce que vous avez à faire est d'exécuter les tâches suivantes:

 mysql -u root -p[root_password] [mydatabase] < mydatabase.sql

pour ce faire, ma base de données doit exister. sinon créez le en utilisant create database mydatabase

2
Marty Fried