Backup a frio
# /etc/init.d/mysql stop
# tar -czpvf mysql.tgz /var/lib/mysql/
# /etc/init.d/mysql start
Backup a quente (Hot Backup)
mysqldump – opções mais utlizadas
-u(usuario de conexao)
-p(senha, se nao fornecida será solicitado)
-X(trava escrita na base enquanto copia)
-e(opcao de otimizacao)
-A(backup completo de todas as bases)
-B(Base da dados para backup) ou –database=BASE
Para mais opções veja mysqldump –help
# mysqldump -u root -p -x -e -A > backup.sql
# mysqldump -u root -p -x -e -A | gzip > backup.sql.gz
# mysqldump -u root -p123459 -x -e -A | gzip > backup.sql.gz
Para descompactar o backup
# gunzip backup.sql.gz
# mysqldump -u root -p -x -e -B umabase > umabase.sql
Restaurando uma base de dados
# mysql -u root -p –database=umabase < umabase.sql
# mysql -u root -p123459 –database=umabase < umabase.sql
Se tentarmos restaura uma base de dados que ja contenha registros podemos ter um erro dp tipo: ERROR 1050 at line 48: Table ‘wp_comments’ already exists
Neste caso é necessario efetuar um DROP na base de dados, não é necessario recria-la se o backup realizado incluir a mesma.
Recrie a base de dados se nao tiver certeza de que o backup realizado nao tiver a base de dados inserida.
# mysql -u root -p
Enter password:
mysql> DROP DATABASE umabase;
Query OK, 0 rows affected (0.00 sec)
mysql> CREATE DATABASE umabase;
Query OK, 1 row affected (0.00 sec)
mysql> \q
Bye
# mysql -u root -p –database=umabase < umabase.sql
Se tiver certeza de que o backup ja tem a base de dados selecionada nao precisa informar
# mysql -u root -p < umabase.sql
# mysql -u root -p123459 < backup.sql