English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Você pode usarSELECT...INTO OUTFILEPara exportar dados de forma simples para um arquivo de texto.
No exemplo a seguir, usaremos a tabela de dados w3Os dados do codebox_tbl são exportados para /tmp/w3O arquivo codebox.txt contém:
mysql> SELECT * FROM w3codebox_tbl -> INTO OUTFILE '"'/tmp/w3codebox.txt"';
Você pode configurar o formato específico da saída de dados usando opções de comando, o exemplo a seguir é para exportar no formato CSV:
mysql> SELECT * FROM passwd INTO OUTFILE '"'/tmp/w3codebox.txt" -> FIELDS TERMINATED BY ',' ENCLOSED BY '"' -> LINES TERMINATED BY '\r\n';
No exemplo a seguir, é gerado um arquivo, com os valores separados por vírgula. Este formato pode ser usado por muitos programas.
SELECT a, b, a+b INTO OUTFILE '"'/tmp/result.text' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM test_table;
LOAD DATA INFILE é a operação inversa de SELECT ... INTO OUTFILE, na sintaxe SELECT. Para escrever os dados de um banco de dados em um arquivo, use SELECT ... INTO OUTFILE, para ler o arquivo de volta para o banco de dados, use LOAD DATA INFILE.
SELECT...INTO OUTFILE 'file_name' na forma de SELECT pode escrever as linhas selecionadas em um arquivo. Este arquivo é criado no host do servidor, portanto, você deve ter permissões FILE para usar essa sintaxe.
A saída não pode ser um arquivo existente. Isso previne que os dados do arquivo sejam alterados.
Você precisa ter uma conta de login no servidor para recuperar o arquivo. Caso contrário, SELECT ... INTO OUTFILE não terá qualquer efeito.
No UNIX, o arquivo é criado como legível, com permissões pertencentes ao servidor MySQL. Isso significa que, embora você possa ler o arquivo, pode não ser possível excluí-lo.
mysqldump é um utilitário do mysql para transferir bancos de dados. Ele gera principalmente um script SQL que contém os comandos necessários para recriar o banco de dados a partir do zero, como CREATE TABLE, INSERT, etc.
Para exportar dados usando mysqldump, é necessário usar --a opção tab para especificar o diretório do arquivo de exportação, o qual deve ser gravável.
O exemplo a seguir exportará a tabela w3codebox_tbl exportado /no diretório tmp:
$ mysqldump -u root -p --no-create-info \ --tab=/tmp w3codebox w3codebox_tbl senha ******
Exportar dados no formato SQL para o arquivo especificado, conforme mostrado a seguir:
$ mysqldump -u root -p w3codebox w3codebox_tbl > dump.txt senha ******
O conteúdo do arquivo criado pelos seguintes comandos é o seguinte:
-- MySQL dump 8.23 -- -- Host: localhost Database: w3codebox --------------------------------------------------------- -- Server version 3.23.58 -- -- Table structure for table `w3codebox_tbl` -- CREATE TABLE w3codebox_tbl ( w3codebox_id int(11) NOT NULL auto_increment, w3codebox_title varchar(100) NOT NULL default '', w3codebox_author varchar(40) NOT NULL default '', submission_date date default NULL, PRIMARY KEY (w3codebox_id), UNIQUE KEY AUTHOR_INDEX (w3codebox_author) ) TYPE=MyISAM; -- -- Dumping data for table `w3codebox_tbl` -- INSERT INTO w3codebox_tbl VALUES (1Learn PHP2007-05-24'); INSERT INTO w3codebox_tbl VALUES (2Learn MySQL2007-05-24'); INSERT INTO w3codebox_tbl VALUES (3JAVA Tutorial2007-05-06');
Se precisar exportar todos os dados do banco de dados, você pode usar o seguinte comando:
$ mysqldump -u root -p w3codebox > database_dump.txt senha ******
Se precisar fazer backup de todos os bancos de dados, você pode usar o seguinte comando:
$ mysqldump -u root -p --all-bases de dados > database_dump.txt senha ******
--all-A opção databases no MySQL 3.23.12 e versões posteriores adicionadas.
Este método pode ser usado para implementar estratégias de backup de banco de dados.
Se você precisar copiar os dados para outro servidor MySQL, você pode especificar o nome do banco de dados e da tabela no comando mysqldump.
Execute os seguintes comandos no host de origem para fazer backup dos dados no arquivo dump.txt:
$ mysqldump -u root -p database_name table_name > dump.txt senha *****
Se você fizer um backup completo do banco de dados, não é necessário usar o nome específico da tabela.
Se você precisar importar o backup do banco de dados para o servidor MySQL, você pode usar os seguintes comandos, você precisa confirmar que o banco de dados já foi criado:
$ mysql -u root -p database_name < dump.txt senha *****
Você também pode usar os seguintes comandos para importar diretamente os dados exportados para o servidor remoto, mas certifique-se de que os dois servidores são acessíveis, podem se comunicar entre si:
$ mysqldump -u root -p database_name \ | mysql -h other-host.com database_name
Os comandos acima usaram o pipe para importar os dados exportados para o host remoto especificado.