Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
No meu sistema fiz comque gerasse um arquivo bat que faz o backup de toda a base de dados em MySQL que é gerado logo ao sair. A cada dia da semana é criado um arquivo de backup. Agora preciso fazer o mesmo bat para gerar o backup das tabelas individualmente.
Atualmente meu sistema gera o seguinte arquivo bat e o executa:
mysqldump.exe -B -c --single-transaction --default-character-set=latin1 conacc -u USUARIO --password="SENHA" --port=3306 -h SERVIDOR > 2_BKP_conacc_segunda-feira.sql
Mas como posso aproveitar esse arquivo para fazer apenas de uma tabela específica?
Grato,
Ilano.
Boa tarde Anderson,
Primeiro agradeço sua atenção. Eu utilizao Windows e já tentei fazer o script da mesma forma que você postou mas ele faz de toda a base. Existe uma forma de se fazer isso via sql, por exemplo?
Alguém tem mais alguma sugestão???
Preciso automatizar os backups dos bancos de dados (MySQL) utilizados em minha aplicação Delphi 7 e preciso que sejam feitos tabela a tabela.
Creio que sua dúvida está mais ligada a área de BD do que ao Delphi... de todo modo, fiz uma rápida pesquisa e achei o comando abaixo neste link: http://fabioalvaro.blogspot.com.br/2014/01/comando-mysql-mais-usados-diretamente.html
>
Fazer o backup de uma tabela de uma base de dados.
[mysql dir]/bin/mysqldump -c -u username -ppassword databasename tablename > /tmp/databasename.tablename.sql
Considerando o código que postou, pela estrutura postada neste blog que citei, acredito que seu bat ficaria algo do tipo:
>
mysqldump.exe -B -c --single-transaction --default-character-set=latin1 conacc -u USUARIO --password="SENHA" --port=3306 -h SERVIDOR > 2_BKP_conacc_segunda-feira.TabelaASerGeradoOBackup.sql
Olá Chrnos,
Também não deu certo. Ele cria de toda a base.
Agora, se eu fizer o bat como abaixo:
mysqldump.exe -B -c --single-transaction --default-character-set=latin1 conacc.NOME_DA_TABELA -u USUARIO --password="SENHA" --port=3306 -h SERVIDOR > 2_BKP_conacc_segunda-feira.sql
Ele faz apenas o cabeçalho e termina aí:
>
-- MySQL dump 10.10
--
-- Host: meu_servidor Database: conacc.d_alunosdet
-- ------------------------------------------------------
-- Server version 5.5.32-0ubuntu0.12.04.1
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES latin1 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
Se alterar o script para:
mysqldump.exe -B -c --single-transaction --default-character-set=latin1 conacc NOME_DA_TABELA -u USUARIO --password="SENHA" --port=3306 -h SERVIDOR > 2_BKP_conacc_segunda-feira.sql
Faz de toda a base.
Ainda acho que o problema está nos parâmetros que está enviando para o MySQL no Dump... Pelo que vejo nos exemplos que postei abaixo, talvez o erro esteja nos parâmetros. Por exemplo, nos links abaixo é postado assim:
Using mysqldump to dump all data from the table would look like this, subsituting [username] for your username (the -t flag suppresses the table creation sql from the dump):
mysqldump -t -u [username] -p test mytable
Mas como não sou especialista em MySQL, vou postar outros links que li a respeito do assunto e sugerir que algum moderador mova este tópico para a área de MySQL.
Selectively dumping data with mysqldumphttp://www.electrictoolbox.com/mysqldump-selectively-dump-data/
Dump and Restore a Single Table from MySQL: http://stackoverflow.com/questions/6682916/how-to-backup-a-single-table-in-a-mysql-database
Olá,
Para efetuar o backup de uma tabela especifica coloque o nome da tabela ao lado direito do nome do banco de dados.
No Linux seria assim:
mysqldump -uusuario -psenha meubd minhatabela > backup.sql
No seu caso, acredito que seria assim:
mysqldump.exe -B -c --single-transaction --default-character-set=latin1 conacc minhatabela -u USUARIO --password="SENHA" --port=3306 -h SERVIDOR > 2_BKP_conacc_segunda-feira.sql