Por padrão, mysqldump
faz o backup de um banco de dados inteiro. Eu preciso fazer backup de uma única tabela no MySQL. É possível? Como faço para restaurá-lo?
Por padrão, mysqldump
faz o backup de um banco de dados inteiro. Eu preciso fazer backup de uma única tabela no MySQL. É possível? Como faço para restaurá-lo?
Respostas:
Despejo
mysqldump db_name table_name > table_name.sql
Despejando de um banco de dados remoto
mysqldump -u <db_username> -h <db_host> -p db_name table_name > table_name.sql
Para referência adicional:
http://www.abbeyworkshop.com/howto/lamp/MySQL_Export_Backup/index.html
Restaurar
mysql -u <user_name> -p db_name
mysql> source <full_path>/table_name.sql
ou em uma linha
mysql -u username -p db_name < /path/to/table_name.sql
Crédito: John McGrath
Despejo
mysqldump db_name table_name | gzip > table_name.sql.gz
Restaurar
gunzip < table_name.sql.gz | mysql -u username -p db_name
O mysqldump pode usar um parâmetro tbl_name, para que ele faça backup apenas das tabelas especificadas.
mysqldump -u -p yourdb yourtable > c:\backups\backup.sql
tentar
for line in $(mysql -u... -p... -AN -e "show tables from NameDataBase");
do
mysqldump -u... -p.... NameDataBase $line > $line.sql ;
done
Podemos fazer um despejo mysql de qualquer tabela em particular com qualquer condição, como abaixo
mysqldump -uusername -p -hhost databasename tablename --skip-lock-tables
Se quisermos adicionar uma condição where específica na tabela, podemos usar o seguinte comando
mysqldump -uusername -p -hhost databasename tablename --where="date=20140501" --skip-lock-tables
Você pode usar facilmente para despejar tabelas selecionadas usando MYSQLWorkbench tool
, individualmente ou grupo de tabelas em um despejo e importá-las da seguinte maneira: você também pode adicionar informações de host se estiver executando-as no seu local adicionando -h IP.ADDRESS.NUMBER depois-u nome do usuário
mysql -u root -p databasename < dumpfileFOurTableInOneDump.sql
Você pode usar este código:
Este exemplo faz um backup do banco de dados sugarcrm e despeja a saída para sugarcrm.sql
# mysqldump -u root -ptmppassword sugarcrm > sugarcrm.sql
# mysqldump -u root -p[root_password] [database_name] > dumpfilename.sql
O sugarcrm.sql conterá a tabela de descarte, criar tabela e inserir o comando para todas as tabelas no banco de dados sugarcrm. A seguir, é apresentada uma saída parcial do sugarcrm.sql, mostrando as informações de despejo da tabela accounts_contacts:
-
accounts_contacts
DROP TABLE IF EXISTS `accounts_contacts`;
SET @saved_cs_client = @@character_set_client;
SET character_set_client = utf8;
CREATE TABLE `accounts_contacts` (
`id` varchar(36) NOT NULL,
`contact_id` varchar(36) default NULL,
`account_id` varchar(36) default NULL,
`date_modified` datetime default NULL,
`deleted` tinyint(1) NOT NULL default '0',
PRIMARY KEY (`id`),
KEY `idx_account_contact` (`account_id`,`contact_id`),
KEY `idx_contid_del_accid` (`contact_id`,`deleted`,`account_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
SET character_set_client = @saved_cs_client;
--
Você pode usar mysqldump
na linha de comando:
mysqldump -u username -p password dbname tablename > "path where you want to dump"
Você também pode usar o MySQL Workbench:
Vá para a esquerda> Exportação de dados> Selecionar esquema> Selecionar tabelas e clique em Exportar
mysqldump db_name table_name | gzip > table_name.sql.gz
para restaurar:gunzip < table_name.sql.gz | mysql -u username -p db_name