Como posso descarregar e restaurar bancos de dados MySQL de e para o Dropbox a partir da linha de comando?

3

Eu tenho alguns bancos de dados MySQL que gostaria de sincronizar entre dois computadores. O que eu gostaria de fazer é ter um comando ou script rápido em um computador que eu possa usar para descarregar rapidamente os bancos de dados para uma pasta no meu Dropbox. Em seguida, tenha um script de restauração semelhante que eu possa usar para substituir o banco de dados existente no segundo computador.

O primeiro passo parece fácil. Eu posso criar um arquivo .sql rápido com o seguinte comando:

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

É o outro lado onde estou tendo problemas. Aparentemente, o MySQL não me deixará facilmente sobrescrever o conteúdo de um banco de dados existente com novos conteúdos. Eu tentei duas abordagens e nem trabalhei.

Primeiro eu tentei mysqlimport , mas ele apenas usou um monte de instruções sobre como usar o comando, e depois de olhar na web, parece que isso é porque simplesmente não irá sobrescrever um banco de dados:

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

Então, tentei primeiro eliminar o banco de dados, mas recebi o seguinte erro:

$ 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ão há um comando simples que eu possa usar para pegar o banco de dados que eu despejei de um computador e substituí-lo em outro computador? Esses bancos de dados são basicamente os mesmos em todos os aspectos, exceto pelas pequenas mudanças diárias que eu faço.

    
por Questioner 01.09.2014 / 05:44

1 resposta

1

Acredito que tudo que você precisa fazer é executar o seguinte:

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

mydatabase deve existir para fazer isso; se não, crie-o usando create database mydatabase

    
por Marty Fried 01.09.2014 / 05:58