Mysql
 sql >> Database >  >> RDS >> Mysql

Esporta database MySQL o MariaDB

Eseguire regolarmente il backup del database è uno dei passaggi cruciali dopo aver realizzato il progetto. La frequenza di backup può essere una volta al giorno o una settimana. Il backup giornaliero è preferito per le applicazioni in cui le modifiche al database sono più frequenti. Nel caso di database ad alta disponibilità, è necessario considerare la configurazione del cluster appropriata anziché il ridimensionamento verticale. Questo tutorial spiega l'utilizzo di mysqldump comando per eseguire il backup del database. Lo stesso comando può essere automatizzato per eseguire backup pianificati.

Note :Questo tutorial copre solo le opzioni più comuni utilizzate con mysqldump comando. Puoi anche fare riferimento alla documentazione ufficiale per esplorare tutte le possibili opzioni. Gli stessi comandi possono essere utilizzati per eseguire il backup dei server di database MySQL e MariaDB.

Backup locale

Backup - Questa sezione spiega come eseguire il backup locale in un file esportando database singoli o multipli.

Autorizzazioni - mysqldump richiede i privilegi elencati di seguito per esportare il database. È necessario assegnare i privilegi appropriati all'account utente utilizzato per esportare il database.

  • SELECT - per eseguire il dump delle tabelle
  • MOSTRA VISTA - per eseguire il dump delle visualizzazioni
  • TRIGGER - per scaricare i trigger
  • BLOCCO TABELLE - nel caso in cui l'opzione --single-transaction non sia utilizzata

Comando - Di seguito viene menzionato l'utilizzo di mysqldump comando per eseguire il backup locale sia per i sistemi basati su Windows che Linux, incluso Ubuntu. I punti tripli significano che possono essere forniti più valori.

# Regular command - Usage - Windows, Linux
mysqldump [options] db_name [tbl_name ...] > <file path>
mysqldump [options] --databases db_name ... > <file path>
mysqldump [options] --all-databases > <file path>

Gli esempi per utilizzare il comando regolare sono indicati di seguito. Questi comandi di esempio utilizzano l'utente enterprise per eseguire backup del database azienda . Non è necessario specificare utente e password nel caso in cui l'account utente utilizzi auth_socket algoritmo per accedere al server MySQL. L'utente del sistema può accedere direttamente al database. Puoi fare riferimento a Come utilizzare la password nativa con MySQL 5.7 e Come installare MySQL 8 su Ubuntu per saperne di più sugli algoritmi delle password.

Note :Non è necessario utilizzare l'opzione -p, nel caso in cui non venga assegnata alcuna password all'utente.

Di seguito sono riportati gli esempi per eseguire il backup di un singolo database con nome utente, host e porta. La password non deve essere fornita con questi comandi per motivi di sicurezza. Puoi specificare la password per mysqldump nel file di configurazione che è considerata un'opzione sicura per cron lavori. Un'altra opzione è usare il comando cat per usare una password crittografata (simile a come sta usando Plesk) come mostrato negli esempi. Il sistema richiederà la password nel caso in cui non sia fornita all'interno del comando. Questi comandi possono essere utilizzati per esportare l'intero database o tabelle singole o multiple.

# All tables - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise > enterprise.sql

# All tables - with username, with password - insecure
mysqldump -u enterprise -p'mypwd' enterprise > enterprise.sql

# All tables - with username, with password - Plesk way
mysqldump -u enterprise -p`cat /etc/psa/.psa.shadow` dbname > dbname.sql

# All tables - with host, with port, with username, without password - prompts for password
mysqldump -h localhost -p 3306 -u enterprise -p enterprise > enterprise.sql

# Single table(user) - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise [user] > enterprise.sql

# Multiple tables(user, profile) - with username, without password - prompts for password
mysqldump -u enterprise -p enterprise user profile > enterprise.sql

Di seguito sono riportati gli esempi per eseguire il backup di più database con nome utente, host e porta.

# Multiple databases - with username, without password - prompts for password
mysqldump -u enterprise -p --databases enterprise vblog mshop > mydbs.sql

# Multiple databases - with username, with password
mysqldump -u enterprise -p'mypwd' --databases enterprise vblog mshop > mydbs.sql

Di seguito è riportato l'esempio per eseguire il backup di tutti i database con nome utente, host e porta.

# All databases - with username, without password - prompts for password
mysqldump -u enterprise -p --all-databases > mydbs.sql

# All databases - with username, with password
mysqldump -u enterprise -p'mypwd' --all-databases > mydbs.sql

Gli utenti di PowerShell su Windows avranno bisogno di comandi diversi come indicato di seguito.

# PowerShell on Windows
shell> mysqldump [options] db_name [tbl_name ...] --result-file=<file path>
shell> mysqldump [options] --databases db_name ... --result-file=<file path>
shell> mysqldump [options] --all-databases --result-file=<file path>

# Example
shell> mysqldump -u enterprise -p enterprise --result-file=mydump.sql

I comandi sopra menzionati esporteranno il database e le tabelle selezionati nella posizione del file specificata nel comando.

Backup del database

Questa sezione spiega come eseguire il backup del database su un altro database utilizzato a scopo di backup utilizzando le Shell Pipe. Possiamo esportare il database nel file locale e quindi utilizzare questo file per importare in un altro database o esportare direttamente in un altro database utilizzando le shell pipe.

Il comando indicato di seguito può essere utilizzato per esportare il database direttamente in un altro database. Inoltre, assicurati di avere accesso a entrambi i server prima di eseguire il comando.

# Export database to another database - Same server
mysqldump -u enterprise -p enterprise | mysql enterprise_backup

# Export database to another database - Different server
mysqldump -u enterprise -p enterprise | mysql -h host.example.com -p 3306 enterprise

Ecco come possiamo esportare o eseguire il backup di un database.