2010-05-04 19 views
10

Come posso utilizzare mysqldump per eseguire il backup e ripristinare il database su un server remoto?mysqldump backup e ripristino su server remoto

Entrambi hanno accesso root. Sto usando lo stucco per eseguire questo.

Finora ho provato la seguente:

mysqldump -u root -p >z*[email protected] masdagn_joom15 | mysql \ -u root -p g2154hE6-AsXP --host=207.210.71.26 -C masdagn_joom15temp \g 

ma rifiutato

la password locale è:!> Z * x311a @

la password remota è: g2154hE6-ASXP

+10

Per futuro preavviso, sarei cauto circa la pubblicazione pubblicamente le credenziali del database. Spero tu li abbia cambiati! –

risposta

8

Questo link fornisce informazioni sul backup e ripristino con mysqldump. Fornisce anche alcuni esempi con un server remoto.

I comandi importanti che puntano essere:

backup:

mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql 

ripristino:

mysql -u root -p[root_password] [database_name] < dumpfilename.sql 
+1

Sono davvero usando questo ma quando entro il comando mysqldump mi dà niente solo il prompt dei comandi di nuovo – manhag

2
mysqldump --user=username --password=pwd db_name | bzip2 -c > /backup_dir/db_name.sql.bz2 

è possibile incorporare questa parte in uno script, in seguito è possibile utilizzare FTP per trasferire all'altra r posizione

da ripristinare, è possibile

bzip2 -d db_name.sql.bz2 
mysql --user=username --password=pwd db_name < db_name.sql 
1

la password locale contiene il carattere >, che viene interpretato come a redirect character dalla maggior parte delle shell. Come regola generale, renderà la tua vita notevolmente più semplice se mantieni le tue password MySQL alfanumeriche [A-Za-z0-9]. E renderà il tuo sistema più sicuro se eviti di pubblicare pubblicamente le tue password.

1
[local-server]# mysqldump -u root -prootpswd db | mysql \ 
       -u root -ptmppassword --host=remote-server -C db1 

[Nota: Ci sono due - (trattino) davanti a host]

Si prega di notare che è necessario prima creare il database DB1 sul server-remoto prima di eseguire il seguente comando.

0

qui è quello che faccio per una discarica rapida a un altro server remoto ... assumendo che avete installato una chiave SSH tra i 2 server

  • creare il file dump-to-server.sh
  • chmod per eseguibile (chmod 0755 dump-to-server.sh)
  • eseguire la sincronizzazione ./dump-to-server.sh schema_name [email protected]

discarica-t o-server.sh

\#!/bin/bash 

if [[ -z "$1" || -z "$2" ]]; then 
    echo "--------- usage ---------"; 
    echo "./dump-to-server.sh schema_name [email protected]"; 
    echo ""; 
else 
    mysqldump --opt "$1" | gzip -c | ssh "$2" "gunzip -c | mysql $1" 
fi 
Problemi correlati