Latest web development tutorials

exportação de dados MySQL

MySQL você pode usar SELECT ... INTO OUTFILE para exportar os dados para um arquivo de texto simples.


Use SELECT ... INTO OUTFILE para exportar dados

Os exemplos a seguir, vamos exportar os dados para uma tabela de dados w3big_tbl arquivo /tmp/tutorials.txt:

mysql> SELECT * FROM w3big_tbl 
    -> INTO OUTFILE '/tmp/tutorials.txt';

Você pode definir o formato de saída de dados especificado pelas opções de comando, os seguintes exemplos são exportados no formato CSV:

mysql> SELECT * FROM passwd INTO OUTFILE '/tmp/tutorials.txt'
    -> FIELDS TERMINATED BY ',' ENCLOSED BY '"'
    -> LINES TERMINATED BY '\r\n';

No exemplo a seguir, um arquivo é gerado, os valores separados por vírgulas. Este formato é usado por vários programas.

SELECT a,b,a+b INTO OUTFILE '/tmp/result.text'
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM test_table;

SELECT ... INTO OUTFILE tem as seguintes propriedades:

  • LOAD DATA INFILE SELECT ... INTO OUTFILE é a operação inversa, a sintaxe SELECT. A fim de gravar dados em um banco de dados em um arquivo, use SELECT ... INTO OUTFILE, para ler o arquivo de volta para o banco de dados, utilize LOAD DATA INFILE.
  • SELECT ... INTO OUTFILE 'nome_arquivo' forma de linhas SELECT podem ser selecionados de gravação de um arquivo. O arquivo é criado no host do servidor, para que você deve ter o privilégio FILE para usar essa sintaxe.
  • A saída não é um arquivo que já existe. Arquivo evitar que dados sejam adulterados.
  • Você precisa ter um servidor de login da conta para recuperar o arquivo. Caso contrário SELECT ... INTO OUTFILE não desempenham qualquer papel.
  • Em UNIX, depois que o arquivo é criado é privilégios legíveis de propriedade de servidor MySQL. Isto significa que, embora você pode ler o arquivo, mas não pode ser excluído.

Exportar dados da tabela original

mysqldump mysql é usado para ligar o banco de dados utilitário é armazenado. Ele produz principalmente um script SQL que contém o comando para recriar o banco de dados a partir do zero necessária CRIAR Inserir tabela e assim por diante.

Utilize mysqldump para exportar dados requer opção --tab para especificar o diretório especificado no arquivo de exportação, o objeto deve ser escrita.

O exemplo a seguir irá exportar o w3big_tbl tabela de dados para o diretório / tmp:

$ mysqldump -u root -p --no-create-info \
            --tab=/tmp w3big w3big_tbl
password ******

Exportar dados em formato SQL

Exportação SQL dados para o formato de arquivo especificado, como segue:

$ mysqldump -u root -p w3big w3big_tbl > dump.txt
password ******

Os arquivos de conteúdo criado pelo comando acima da seguinte forma:

-- MySQL dump 8.23
--
-- Host: localhost    Database: w3big
---------------------------------------------------------
-- Server version       3.23.58

--
-- Table structure for table `w3big_tbl`
--

CREATE TABLE w3big_tbl (
  w3big_id int(11) NOT NULL auto_increment,
  w3big_title varchar(100) NOT NULL default '',
  w3big_author varchar(40) NOT NULL default '',
  submission_date date default NULL,
  PRIMARY KEY  (w3big_id),
  UNIQUE KEY AUTHOR_INDEX (w3big_author)
) TYPE=MyISAM;

--
-- Dumping data for table `w3big_tbl`
--

INSERT INTO w3big_tbl 
       VALUES (1,'Learn PHP','John Poul','2007-05-24');
INSERT INTO w3big_tbl 
       VALUES (2,'Learn MySQL','Abdul S','2007-05-24');
INSERT INTO w3big_tbl 
       VALUES (3,'JAVA Tutorial','Sanjay','2007-05-06');

Se você precisa para exportar dados para todo o banco de dados, você pode usar o seguinte comando:

$ mysqldump -u root -p w3big > database_dump.txt
password ******

Se você precisa fazer backup de todos os bancos de dados, você pode usar o seguinte comando:

$ mysqldump -u root -p --all-databases > database_dump.txt
password ******

--all-databases opção foi adicionada no MySQL 3.23.12 ou posterior.

Este método pode ser usado para implementar a estratégia de cópia de segurança do banco de dados.


A folha de dados e cópia do banco de dados para outro host

Se você precisa copiar os dados para outro servidor MySQL, você pode especificar o nome das tabelas do banco de dados e no comando mysqldump.

Execute o seguinte comando no host de origem, backup de dados em arquivo dump.txt:

$ mysqldump -u root -p database_name table_name > dump.txt
password *****

Se o backup completo do banco de dados, você não precisa usar um nome de tabela específica.

Se você precisa fazer o backup do banco de dados em servidor MySQL, você pode usar o seguinte comando, use o comando a seguir o que você precisa para garantir que o banco de dados foi criado:

$ mysql -u root -p database_name < dump.txt
password *****
你也可以使用以下命令将导出的数据直接导入到远程的服务器上,但请确保两台服务器是相通的,是可以相互访问的:</p>
$ mysqldump -u root -p database_name \
       | mysql -h other-host.com database_name

O comando acima é usado no gasoduto para exportar os dados para o host remoto especificado.