Latest web development tutorials

esportazione di dati di MySQL

MySQL è possibile utilizzare SELECT ... INTO OUTFILE per esportare i dati in un file di testo semplice.


Utilizzare SELECT ... INTO OUTFILE ai dati di esportazione

Gli esempi che seguono, ci saranno esportare i dati in una tabella di dati del file w3big_tbl /tmp/tutorials.txt:

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

È possibile impostare il formato dei dati di output specificato dalle opzioni di comando, i seguenti esempi sono esportati in formato CSV:

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

Nel seguente esempio, un file viene generato, i valori separati da virgole. Questo formato viene utilizzato da diversi programmi.

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 ha le seguenti proprietà:

  • LOAD DATA INFILE SELECT ... INTO OUTFILE è l'operazione inversa, la sintassi SELECT. Per scrivere i dati ad un database in un file, utilizzare SELECT ... INTO OUTFILE, per leggere il file nel database, uso LOAD DATA INFILE.
  • SELECT ... INTO 'nome_file' OUTFILE forma di linee SELECT è possibile selezionare un file di scrittura. Il file viene creato sul server host, quindi è necessario avere il privilegio FILE per usare questa sintassi.
  • L'uscita non è un file già esistente. File evitare che i dati vengano manomessi.
  • È necessario disporre di un server di account di accesso per recuperare il file. Altrimenti SELECT ... INTO OUTFILE non giocherà alcun ruolo.
  • In UNIX, dopo aver creato il file è leggibile privilegi di proprietà di server MySQL. Ciò significa che, anche se è possibile leggere il file, ma non possono essere cancellati.

esportare i dati della tabella originale

mysqldump MySQL è utilizzato per trasformare il database di utilità viene memorizzato. Essa produce principalmente uno script SQL che contiene il comando per ricreare il database da zero necessario CREATE TABLE INSERT e così via.

Utilizzare mysqldump per esportare i dati richiede l'opzione --tab per specificare la directory specificata nel file di esportazione, l'oggetto deve essere scritto.

Il seguente esempio esportare la w3big_tbl tabella di dati nella directory / tmp:

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

Esportazione dei dati in formato SQL

Esportazione SQL dati nel formato di file specificato, come segue:

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

file di contenuto creati dal comando precedente come segue:

-- 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 avete bisogno di esportare i dati per l'intero database, è possibile utilizzare il seguente comando:

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

Se è necessario eseguire il backup di tutti i database, è possibile utilizzare il seguente comando:

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

--all-databases opzione è stata aggiunta in MySQL 3.23.12 o successiva.

Questo metodo può essere utilizzato per attuare la strategia di backup del database.


La scheda tecnica e la copia del database a un altro host

Se è necessario copiare i dati ad altri server MySQL, è possibile specificare il nome delle tabelle del database e dei dati nel comando mysqldump.

Eseguire il seguente comando sull'host di origine, il backup dei dati in un file dump.txt:

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

Se il backup completo del database, non è necessario utilizzare un nome tabella specifica.

Se è necessario eseguire il backup del database in MySQL server, è possibile utilizzare il seguente comando, utilizzare il seguente comando è necessario assicurarsi che il database è stato creato:

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

Il comando precedente viene utilizzato in pipeline per esportare i dati all'host remoto specificato.