Come esportare i dati in mysql. Esportazione e importazione di un database in PHPMyAdmin

24.03.2023

Questa procedura comporta il trasferimento di dati da un database (A) a un altro (B). Di norma, il database B si trova sull'hosting (o a Denver) e il database A si trova sul computer dell'utente ed è un file con estensione sql. Il database A ha un altro nome: Dump.

Come importare un database?

Importazione di un database MySQL utilizzando SSH

Questo metodo è usato abbastanza raramente, ma lo descriveremo. Innanzitutto, compila il database da cui lo importerai sul server del provider di hosting, dove sono archiviati i file del tuo sito web. Successivamente, per importare il database, utilizzare il comando:

mysql -uNOMEUTENTE -pPASSWORDNOMEDB< DUMPFILENAME.sql

mysql --user=NOMEUTENTE --password=NOMEDBPASSWORDUTENTE< DUMPFILENAME.sql

Al posto delle parole scritte in maiuscolo sostituiamo:
USERNAME: nome utente del database, ad esempio uhosting_databaseuser;

USERPASSWORD - password utente del database, ad esempio Rjkweuik12;

DBNAME - nome del database in cui verrà effettuata l'importazione, ad esempio uhosting_databasename

DUMPFILENAME - nome del file dump da cui verranno importati i dati. Qui dobbiamo anche specificare il percorso del database che abbiamo caricato sul server del provider di hosting.

Buon pomeriggio amici, oggi impareremo a fare... Perché è necessario, potresti chiedere. Prima di tutto esportazione del database deve essere fatto periodicamente in modo che in situazioni di emergenza non si perdano informazioni importanti. L'esportazione sarà un piccolo file in cui verranno archiviate tutte le informazioni sul database. Per esportazione del database devi andare su PHPMyAdmin e cliccare sul database che ti interessa. Successivamente vedrai tutte le tabelle in esso contenute e, senza entrarvi, fai clic sul pulsante del menu chiamato Esporta. Ti apparirà davanti la seguente pagina:


Ti consiglio di scegliere modo rapido esportare e indicare anche nel formato SQL. Successivamente puoi fare clic su OK. Apparirà una finestra davanti a te in cui ti verrà chiesto di salvare il file.


Salvi il file nella posizione che ti serve, l'importante è ricordare dove lo hai salvato, perché per noi è molto importante.
Per quanto riguarda il normale metodo di esportazione. Puoi anche usarlo se ne hai bisogno, ce ne sono molti altre impostazioni, che puoi specificare durante l'esportazione. Ad esempio, seleziona le tabelle necessarie dal database, specifica la codifica e molto altro. Se siete interessati questa impostazione, Puoi guardarlo. Ma non approfondiremo questo contesto.
Dopo aver salvato il file sul tuo computer, ti chiederò di eliminare il database. Non ti spiegherò come farlo, perché l’abbiamo già affrontato. Non aver paura di cancellare, riporteremo tutto al suo posto insieme a te.
È ora di darsi da fare importazione del database. Vai al menu di importazione.


Selezioniamo una panoramica del tuo computer e indichiamo il percorso del nostro file. E fare clic su OK. Come puoi vedere, è apparso un errore davanti a te. Non allarmarti, il punto è che non abbiamo importato il database stesso, ma solo tutte le sue tabelle. Pertanto, crea prima un database, entra in esso e fai clic sul pulsante di importazione, dopo aver eseguito tutto quanto sopra. Premendo il pulsante ok, tutto funzionerà e, se hai fatto tutto correttamente, non dovrebbero apparire errori.


Come puoi vedere, la nostra tabella è ricomparsa al suo posto e tutti i dati in essa contenuti sono stati salvati. Ora capisci che meravigliosa opportunità esportare e importare database in PHPMyAdmin. Dopotutto, se perdi tutto il tuo lavoro per molti anni in un giorno, grazie a questo file puoi recuperare tutto. Con questo vi saluto e ci vediamo presto.

Questa lezione copre questioni importanti come esportazione del database E importazione del database MySQL. Potresti chiederti, perché esportare i database? Di norma, questo viene fatto allo scopo di eseguire il backup del database in modo che sia sempre a portata di mano, come si suol dire, per ogni evenienza. Dopotutto, nessuno è immune da circostanze di forza maggiore, come gli incidenti di hosting, che possono portare alla perdita di dati. Un altro esempio potrebbe essere un attacco da parte di hacker che vogliono danneggiare il tuo sito. In effetti, ci possono essere molti di questi esempi.

L'importazione del database viene utilizzata quando è necessario "ricaricare" un database sul tuo hosting attuale o quando ti sposti su un altro hosting. Nella pratica, questo viene spesso fatto anche dai webmaster.

Da soli esportazione del database E importazione del database- i compiti sono semplici. Vale la pena eseguire queste azioni una volta per ricordare l'algoritmo per la loro implementazione per il resto della tua vita. Diamo un'occhiata a come tutto questo viene fatto con esempi.

Per esportare un database, devi andare al pannello di amministrazione dell'hosting, quindi andare alla sezione database - Database MySQL.

Seleziona il database che vogliamo esportare (vai su phpMyAdmin). IN in questo esempio il database si chiama "cl209038".

1) Nel primo caso selezionare “Fast”, lasciare il formato SQL e premere il pulsante “OK”. Di conseguenza, una copia del database verrà scaricata sul nostro computer.

2) Nel secondo caso selezionare “Normale”. Apparirà una pagina con le impostazioni di esportazione del database. Seleziona tutte le tabelle, seleziona il livello di codifica e compressione, come mostrato di seguito. Il resto, di regola, non ha bisogno di essere cambiato. Fare clic sul pulsante "OK" e il database verrà esportato sul nostro computer.

Questo è tutto, come puoi vedere, esportazione del database MySQL non è un compito difficile.

Per importare un database, devi anche andare al pannello di amministrazione dell'hosting e andare alla sezione con i database MySQL. Ci sono due opzioni qui: o devi creare un nuovo database o esportarlo in uno esistente.

La creazione di un database sarà necessaria, ad esempio, se stiamo spostando il sito su un altro hosting. Se abbiamo ancora lo stesso hosting e il database è già stato creato, puoi semplicemente selezionare questo database e “ricaricare” i dati al suo interno. Ovviamente puoi eliminarlo, quindi crearne uno nuovo (vuoto) e caricarlo.

1) Il database esiste già. Selezioniamo un database in cui importare la nostra copia del database. Verrà visualizzato il menu di importazione del database.

Seleziona il file di copia del database che desideri importare. Se necessario, è possibile modificare la codifica e il formato del database. Successivamente, fare clic sul pulsante "OK". Dopo l'importazione, il sistema ci informerà se tutto è andato correttamente o se si sono verificati errori durante il processo. Se si verificano errori, puoi provare a eliminare il database sull'hosting, quindi creare un database vuoto e importare nuovamente il database.

2) Creazione di un nuovo database. Vai al pannello di amministrazione dell'hosting e seleziona la sezione con i database MySQL. Entriamo nella gestione del database MySQL.

Specificare il nome del database e la password desiderati. Fare clic sul pulsante "Crea". Di conseguenza, dovrebbe essere creato un nuovo database (vuoto): in esso dovremo importare una copia precedentemente salvata del nostro database.

Questo è tutto ciò che volevo dirti sull'esportazione e l'importazione di database MySQL. Se hai difficoltà riguardo a queste domande, scrivi commenti su questa lezione.

Saluti, amici! 🙂

Oggi ho deciso di continuare la conversazione su come lavorare con MySQL nella console e di prestare attenzione alla procedura per esportare un database MySQL.

In questo articolo parlerò di come realizzare una discarica Database MySQL, nonché caricare dati da MySQL a file Excel e formato CSV.

Esamineremo varie opzioni per recuperare informazioni da: creazione di un dump di uno o più database, esportazione di dati da singole tabelle e risultati arbitrari SELEZIONARE richieste.

Parleremo anche di come generare dati da un database MySQL nella console del server e nella riga di comando MySQL.

In questo articolo non parlerò di come esportare i dati da utilizzando phpMyAdmin e altri strumenti visivi.

Innanzitutto perché su Internet c'è già abbastanza materiale su questo argomento. Inoltre, è materiale di alta qualità, che non ho voglia di copiare e incollare.

E, in secondo luogo, io stesso ho brevemente esaminato il processo di output delle informazioni da un database MySQL a un file SQL in uno dei miei articoli, in cui ho parlato di .

Quindi, a meno che tu non sia uno sviluppatore professionista o amministratore di sistema, che potrebbe trovare utili informazioni su come lavorare con la console e sei venuto solo per istruzioni su come esportare il database su phpMyAdmin, puoi limitarti a leggere le informazioni al link sopra.

Voglio che tu mi capisca bene: non voglio offenderti in alcun modo, ma voglio solo che tu trascorra il tuo tempo con il massimo beneficio per la tua attività e ottenga ciò che stavi cercando.

Con questo si conclude la parte introduttiva e si passa al ripasso dei comandi da console per la creazione di un dump del database MySQL, che ho deciso di ordinare in base alla quantità di dati da salvare: partendo dall'esportazione dell'intero database, per finire con le singole tabelle e i risultati di domande arbitrarie.

Creazione di un dump del database MySQL tramite la console

Vorrei fare una piccola precisazione fin dall'inizio.

Dump del databaseè un file con una serie di comandi SQL che, una volta avviato, consente di creare database e tabelle, nonché di riempirli di informazioni. Il dump è necessario per chi vuole scaricare un database MySQL per copiarlo su un altro server o all'interno di uno già esistente.

Inoltre, se qualcuno non lo sa, un backup di un database MySQL è, in sostanza, un dump dello stesso effettuato in un certo periodo di tempo, che consente di ripristinare la struttura e i dati del database se necessario.

Esporta dati- si tratta semplicemente di estrarre informazioni dalle tabelle in forma di testo per ulteriore lavoro con editor di testo o grafici.

Pertanto, i comandi per queste azioni saranno leggermente diversi.

Per creare un dump del database, MySQL dispone di un'utilità integrata chiamata mysqldump, che deve essere utilizzato al di fuori della riga di comando MySQL nella console del server o in un'altra shell.

Pertanto, per l'opzione più semplice e comune: esportare i dati da un database specifico nella console MySQL per trasferirli su un altro server o copiarli internamente, è necessario eseguire il seguente comando:

Mysqldump -u nomeutente -p nome_database > nome_percorso_e_dump_file

Questa utility può creare dump del database MySQL solo sotto forma di file con comandi SQL, quindi non importa quale estensione scegli per il tuo file, il suo contenuto sarà comunque lo stesso. E non dimenticare di controllare i permessi di scrittura della directory in cui si troverà prima di esportare le informazioni da MySQL in modo che il file possa essere creato.

Se all'improvviso è necessario eseguire un dump di tutti i database sul server, utilizzare la seguente opzione di comando:

Mysqldump -u nomeutente -p --all-databases > nome_percorso_e_dump_file

Per eseguire il dump solo di alcuni database specifici, dovrai chiamare mysqldump con i seguenti parametri:

Mysqldump -u nomeutente -p --databases nome_database1, nome_database2, ... > nome_percorso_e_file_dump

Di conseguenza, in ogni caso riceverai un dump del database MySQL contenente i comandi per creare la struttura delle tabelle contenute (campi, i loro tipi, indici, chiavi, ecc.), nonché le operazioni per riempirle con i dati.

Questa opzione è adatta solo per ripristinare e copiare interi database.

Parleremo ulteriormente di come eseguire il backup di alcune tabelle MySQL e ottenere i loro dati in forma leggibile.

Dumping di una tabella MySQL ed esportazione dei dati

Per creare un dump di alcune tabelle del database MySQL, avremo bisogno della stessa utility mysqldump, chiamato con i seguenti parametri:

Mysqldump -u nome utente -p nome_database nome_tabella1, nome_tabella2, ... > nome_percorso_e_file_dump

Quando chiami mysqldump, puoi specificare le tabelle richieste come valore del parametro --tabelle, quando viene utilizzato il parametro --banche dati verrà ignorato:

Mysqldump -u nome utente -p --databases nome_database1, nome_database2 --tables nome_tabella1, nome_tabella2, ... > nome_percorso_e_file_dump

L'esempio precedente visualizzerà il seguente errore:

Mysqldump: errore ricevuto: 1049: database sconosciuto "database_name1" quando si seleziona il database

Come puoi vedere, verrà utilizzato solo il database più recente dall'elenco. In linea di principio, questo comportamento è abbastanza logico, perché Le tabelle specificate potrebbero non essere visualizzate in tutti i database.

Ok, abbiamo ricevuto un dump delle tabelle del database MySQL. Può essere utilizzato per ripristinarli o copiarli insieme alla struttura.

Ma cosa succede se hai solo bisogno di memorizzare le informazioni al loro interno e, preferibilmente, in una forma leggibile in modo da poterle inviare al gestore e visualizzarle in un normale editor di testo o foglio di calcolo? MySQL dispone di strumenti anche per questo.

L'opzione di chiamare l'utilità ci aiuterà a realizzare i nostri piani mysql dalla console con alcuni parametri:

Mysql -u nomeutente -p nome_database -e "SELECT * FROM nome_tabella"

Questo comando ci consentirà di eseguire una richiesta al database richiesto e visualizzare il risultato nella console senza entrare riga di comando MySQL.

Bene, per non inviare dati alla console, ma per scriverli su un file, è necessario integrare il comando come segue:

Mysql -u nomeutente -p -e "SELECT * FROM nometabella" > percorso_e_nomefile

Grazie a queste costruzioni possiamo ottenere non solo dati memorizzati in tutti i campi della tabella, ma anche in campi specifici. Per fare ciò basta sostituire il simbolo dei caratteri jolly (*) con quelli obbligatori, separati da virgole.

Di conseguenza, l'output sarà un normale file di testo che conterrà i nomi dei campi sotto forma di intestazione e le informazioni su di essi per tutti i record. Può essere aperto normalmente editor di testo, indipendentemente dalla risoluzione che gli dai durante la creazione.

Se desideri esportare dati da un database MySQL in formato xls o csv in modo che il file risultante venga visualizzato correttamente negli editor di fogli di calcolo, ti diremo come farlo un po' più tardi :)

Creazione di backup ed output di dati da un database MySQL utilizzando query

Abbiamo parlato di come eseguire il dump di un database MySQL: uno o più, nonché singole tabelle. Ma a volte nella pratica ci sono casi in cui è necessario esportare un set di dati che non è limitato a una tabella. Oppure devi selezionare solo alcuni dati dalla tabella.

Gli sviluppatori di progetti aziendali si trovano spesso di fronte a questo problema quando i manager chiedono loro di fornire tutti i tipi di dati statistici. O quando è necessario eseguire il backup di una determinata parte della tabella per ripristinarla rapidamente.

Per il backup avremo bisogno della stessa utility mysqldump, che dovrà chiamarsi così:

Mysqldump -u nome_utente -p nome_database nome_tabella --where "ricerca" > nome_percorso_e_dump_file

Di conseguenza, riceveremo un file con i comandi SQL per creare una tabella con tutta la sua struttura, che, dopo la creazione, verrà riempita con le informazioni selezionate tramite una query di ricerca.

Se abbiamo solo bisogno di ottenere i dati memorizzati in una o più tabelle, allora dovremo modificare il comando utilizzato nel caso precedente per recuperare tutti i dati nella tabella, solo con alcune precisazioni:

Mysql -u nome_utente -p -e "SELECT * FROM nome_tabella DOVE ricerca" > nome_percorso_e_nome_file

Come avete capito, oltre ai vari chiarimenti specificati nella richiesta, si avvale della direttiva DOVE, puoi utilizzare altri costrutti SQL: GIUNTURA, UNIONE eccetera.

Puoi raccogliere tutte le statistiche che desideri :)

La stessa azione può essere eseguita anche quando si lavora sulla riga di comando MySQL utilizzando il seguente comando:

SELECT * FROM tabella_database DOVE cerca INTO OUTFILE "percorso_e_nome_file";

Questo comando è specificamente progettato per creare file con risultati di campionamento. Inoltre, i risultati non solo possono essere esportati su file, ma anche scritti su variabili, e i dati di output possono essere formattati in vari modi.

Se quanto sopra è il tuo caso, allora lista completa Puoi trovare i parametri e le opzioni per chiamare questo comando qui: https://dev.mysql.com/doc/refman/5.7/en/select-into.html

Per concludere la mia breve escursione in mysqldump, vorrei fornire una variante di chiamata di un comando con un elenco di parametri per creare un dump ottimizzato del database e delle tabelle MySQL, ripristinando il database e le singole tabelle da cui richiederà meno tempo rispetto a una chiamata normale:

mysqldump -u nome_utente -h host_o_IP_server_MySQL -p --no-autocommit --opt nome_database > nome_percorso_e_dump_file_name;

Per motivi di esperimento ho usato questa opzione per scaricare un database MySQL di 143 MB. Il successivo ripristino ha richiesto 59 secondi rispetto a 1 minuto e 3 secondi quando il database è stato ripristinato da un dump effettuato chiamando mysqldump senza parametri speciali.

Sono d'accordo che questa è una piccola cosa. Ma questo è solo nel caso dato volume dati. Se usi questa tecnica quando si crea un dump più grande di 1 GB, la differenza sarà più significativa.

Se ti imbatti in una situazione del genere, non dimenticare di archiviare prima il dump del database MySQL. Il migliore è tar.gz. Quindi il recupero richiederà ancora meno tempo.

Esporta dati da MySQL a Excel e file CSV

Non per niente ho unito le informazioni sull'output di informazioni da MySQL in questi due formati in un unico blocco, perché... sono molto simili, vengono utilizzati più o meno allo stesso modo (per strutturare le informazioni sotto forma di tabelle) e verranno chiamati gli stessi comandi per l'esportazione.

Come sai, l'unica differenza significativa tra questi formati è che le estensioni xls e xlsx hanno file creati in formato Programma Microsoft Ufficio Excel, che funziona solo su Windows, mentre i file CSV sono più universali e le operazioni con essi sono possibili in molti editor.

Ciò non significa che xls sia ovunque tranne che Microsoft Office Excel non si aprirà. Lo stesso OpenOffice conferma il contrario.

Ma affinché ciò sia possibile, è necessario che questo supporto sia presente prodotto software. I file CSV sono leggibili anche in un normale editor di testo come Blocco note, ma questo formato non sarà interamente leggibile.

Vorrei iniziare con il fatto che solo i risultati possono essere esportati in xls o csv query SQL, con cui abbiamo imparato a lavorare in precedenza, perché sarà impossibile generare l'intero database in un unico file in un'unica operazione.

Innanzitutto, questo non è ottimale, perché... è improbabile che un file di questo tipo si apra se nel database è memorizzato un grande volume di informazioni. E, in secondo luogo, non è chiaro come suddividere le informazioni all'interno del file in tabelle e campi.

No, ovviamente è possibile farlo, ma è improbabile che ciò venga fatto con un comando e in generale è improbabile che qualcuno lo faccia nella console. Penso che per questi scopi avrai bisogno di un software speciale o almeno di uno script.

Se all'improvviso sai come esportare informazioni dall'intero database MySQL in uno o più file xls nella console contemporaneamente, scrivilo nei commenti. Penso che leggere questo argomento sarà utile a molti.

Quindi, se stiamo parlando di come esportare dati da MySQL a xls e csv, questo può essere fatto direttamente nella console del server tramite l'utilità mysql oppure nell'opera con cui vi ho presentato nel mio precedente articolo.

Cominciamo in ordine.

Puoi esportare i dati da un database MySQL nei formati csv e xls direttamente nella console del server utilizzando i seguenti comandi.

SU Linux sistemi:

Mysql -u nomeutente -d nome_database -p -e "SELECT * FROM tabella_database;" | sed "s/"/\"/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g" > percorso_e_nome_file. csv

In linea di principio, se assolutamente necessario, è possibile utilizzare questo comando per esportare i dati MySQL in un file Excel. Ma, a dire il vero, non ho affrontato questo problema in pratica e non ho idea di cosa verrà fuori alla fine, perché... Attualmente sto lavorando su Windows. Se usi questo comando sotto Linux, scrivi nei commenti i risultati del tuo lavoro. Penso che le informazioni interesseranno a tutti.

SU finestre:

Sfortunatamente, in questo caso l'esportazione dei dati dalle tabelle MySQL in CSV utilizzando il comando precedente non funzionerà, perché Windows, a differenza di Linux, non ha built-in comando della consolle per lavorare con i thread, che è sed in Linux.

Certo, puoi installarlo, ma è troppo complicato. In alternativa è possibile utilizzare CygWin— Emulatore di console Linux per sistemi Windows.

Va bene se lo hai già installato. Altrimenti, esportare i dati dal database MySQL utilizzando il metodo scelto ci creerà troppi problemi.

Ma estrarre informazioni in un file xls è facile come 5 centesimi :) È molto semplice avviarlo nel modo seguente, che ho provato personalmente:

Mysql -u nomeutente -d nome_database -p -e "SELECT * FROM tabella_database;" > percorso_e_nome_file.xls

Ha aperto questa vita in Microsoft Office Excel senza alcun problema. L'unica cosa è che all'apertura, sullo schermo è stato visualizzato un messaggio che avvisava che il formato effettivo del file aperto è diverso dall'estensione specificata.

Ma quando si conferma l'azione, il documento si apre senza difficoltà: tutte le informazioni sono state divise in celle nella forma in cui erano archiviate nella tabella stessa.

Non lo so, forse se esegui azioni specifiche in Microsoft Office Excel, in futuro sorgeranno problemi; non ho approfondito così tanto. Almeno guardando i dati normalmente non ho visto nulla di insolito.

Se riscontri problemi durante l'utilizzo del file xls esportato da MySQL, sia in questo programma che in altri, faccelo sapere nei commenti.

Utilizzando il metodo sopra descritto è possibile esportare in linea di principio il contenuto di un database MySQL in un file CSV. Ma poi i dati provenienti da diversi campi della tabella verranno scritti in massa, senza delimitatori, il che potrebbe non essere visualizzato bene vari programmi per lavorare con le tabelle, in cui di solito lavorano con file CSV.

OpenOffice, tra l'altro, non se ne preoccupa :) Ha delimitato automaticamente le informazioni ottenute nel modo in cui abbiamo esportato il contenuto del database MySQL in xls. Non so come faccia, ma consiglio di usarlo :)

Ebbene, lo stesso Microsoft Office Excel ha visualizzato tutte le informazioni corrispondenti a un record nella tabella, scrivendole in una cella senza delimitatori. Penso che altri editor di tabelle faranno lo stesso.

Pertanto, quando si esporta un database MySQL in file CSV, è necessario farlo separando le informazioni personaggi speciali, percepito dagli editori.

E poi mi sono avvicinato gradualmente al secondo metodo per esportare i dati MySQL in CSV e XLS, ovvero utilizzare la riga di comando MySQL.

Quindi, per esportare i dati MySQL in un file CSV in questo modo, abbiamo bisogno del seguente comando:

SELECT * FROM database_table INTO OUTFILE "path_and_file_name.csv" CAMPI TERMINATI DA "," CHIUSI DA """ RIGHE TERMINATE DA "\n";

Come risultato della sua esecuzione, riceverai un file CSV nel percorso specificato al momento della chiamata, che si aprirà correttamente nella maggior parte dei moderni editor di fogli di calcolo. Per ogni evenienza, ti ricordo di scappare questo comando necessario solo dopo la connessione a un database MySQL.

Questo comando è ottimo anche per esportare dati MySQL in un file xls per la corretta visualizzazione in Microsoft Office Excel. Solo che in questo caso non abbiamo bisogno di separatori, perché interferiranno con la divisione delle informazioni in celle:

SELECT * FROM database_table INTO OUTFILE "percorso_e_nome_file.xls";

Tuttavia, in pratica, non tutto è così semplice come ho descritto. Durante l'esecuzione del comando, potresti riscontrare il seguente errore nella console che impedisce il completamento dell'esportazione:

ERRORE 1290 (HY000): il server MySQL è in esecuzione con l'opzione --secure-file-priv quindi non può eseguire questa istruzione

È causato dal fatto che il tuo server MySQL è stato avviato con l'opzione --secure-file-priv. Personalmente ho riscontrato questo problema perché per lavorare in console utilizzo il kit di distribuzione MySQL incluso nel kit WAMP OpenServer, che a sua volta avvia in questo modo il server MySQL.

Esistono due modi per risolvere il problema:

  • Modifica i parametri di avvio del server MySQL
  • Cambia il percorso del file di esportazione MySQL finale

Il primo metodo mi sembrava troppo complicato, perché... Dovrei approfondire la configurazione di OpenServer, che non è stata scritta da me con tutte le circostanze che ne conseguono 🙂 Pertanto ho deciso di intraprendere la seconda strada. Se riscontri un problema simile, ripeti dopo di me.

Per prima cosa devi andare alla riga di comando di MySQL ed eseguire uno dei seguenti comandi:

MOSTRA VARIABILI COME "secure_file_priv"; SELEZIONA @@GLOBAL.secure_file_priv;

Il risultato dell'esecuzione di entrambi sarà il valore della variabile globale MySQL secure_file_priv, che contiene il percorso della directory attraverso la quale è possibile eseguire le operazioni di esportazione e importazione dei dati MySQL (in futuro, un collegamento ad un articolo sull'importazione dei dati).

Quelli. quando si utilizzano i comandi CARICAMENTO DATI E SELEZIONA... NELL'OUTFILE i file esportati e importati possono trovarsi solo all'interno di questa directory.

Nel mio caso, questa variabile era generalmente impostata su NULLO, Perché Come ho già detto, per lavorare nella console utilizzo le utilità MySQL della distribuzione inclusa in OpenServer. Questo valore ha indicato che le operazioni di esportazione e importazione dei dati MySQL utilizzando i comandi specificati sono state completamente chiuse.

Come si è scoperto in seguito, questa è una situazione comune quando si utilizzano server WAMP e MAMP in scatola.

Purtroppo nel mio caso non è stato possibile utilizzare i consueti metodi di modifica dei valori delle variabili globali MySQL:

SET nome_variabile = valore;

Di conseguenza, ho visto solo il seguente errore nella console:

ERRORE 1238 (HY000) alla riga 1: la variabile "secure_file_priv" è una variabile di sola lettura.

Di conseguenza, per modificare il valore di una variabile secure_file_priv e aprire le operazioni di esportazione e importazione, dovevo accedere al file di configurazione di MySQL mysql.ini, che si trova nella directory principale della distribuzione MySQL, o a cui è possibile accedere in un altro modo se MySQL è incluso nel tuo WAMP/LAMP/ Creazione del server MAMP.

A proposito, se desideri modificare il percorso della directory di spool di scambio file, dovrai fare lo stesso.

Nel mio caso questa variabile esisteva già nella configurazione, solo in forma commentata:

Secure-file-priv = "%dprogdir%\\userdata\\temp"

Se non ce l'hai, scrivilo da zero nella sezione (almeno per me si trovava lì).

L'ho rimosso dal commento e ho deciso di usarlo nella forma in cui è stato scritto. Quelli. quando esporto i dati da MySQL e li importo nuovamente, i miei file verranno ora archiviati in una directory c:\openserver\datiutente\temp\.

Dopo aver modificato la configurazione (qualsiasi, tra l'altro), non dimenticare di riavviare il server o un servizio separato di cui hai modificato le impostazioni, se possibile, affinché le modifiche abbiano effetto!

Per sicurezza, dopo aver riavviato il server MySQL, visualizza nuovamente la variabile secure_file_priv e copia il suo valore negli appunti.

E ora dobbiamo chiamare il comando come all'inizio, solo prima del nome del file in cui verranno salvate le informazioni dal database MySQL, scrivi il percorso memorizzato nella variabile che stiamo modificando nella seguente forma:

SELECT * FROM database_table INTO OUTFILE "secure_file_priv_value\file_name.csv";

Successivamente, nel mio caso l'esportazione dei dati da MySQL ha funzionato.

Punto importante! Se lavori con MySQL sotto Windows, non dimenticare di cambiare "\" in "/" quando specifichi il percorso del file, altrimenti verrà visualizzato l'errore --secure-file-priv continuerà comunque ad apparire.

Questo conclude l'articolo su come eseguire il dump di un database MySQL e delle sue tabelle, nonché sui dati di output dalle tabelle MySQL in vari formati. Scrivi le tue recensioni nei commenti e condividi con tutti le opzioni di script che usi più spesso nella pratica.

Se l'articolo ti è piaciuto puoi ringraziare l'autore ripubblicando l'articolo in mezzi di comunicazione sociale o finanziariamente utilizzando il modulo sottostante, in modo da poter pagare l'hosting di base.

Buona fortuna a tutti e ci vediamo di nuovo! 🙂

PS: se hai bisogno di un sito web o devi apportare modifiche ad uno già esistente, ma non c'è né tempo né voglia per farlo, posso offrire i miei servizi.

Più di 5 anni di esperienza sviluppo professionale siti. Lavorare con PHP

In questo articolo prenderemo in considerazione due domande: come importare database e come risolvere il problema con l'importazione di database di grandi dimensioni modificando le impostazioni in php.ini.

Come sai, il backup dei dati è una garanzia che sarai in grado di ripristinare il tuo sito web se improvvisamente, per qualche motivo, il funzionamento del sito viene interrotto. Come ripristinare un sito Web da un backup? Esistono diversi modi, vedremo come importare un database mysql in phpMyAdmin. Prima di iniziare il processo di importazione del database, è necessario eliminare tutte le tabelle dal database in cui verranno importati i file.

Per eliminare le tabelle, accedi a pagina iniziale phpMyAdmin e procedi come segue:


2 - clicca su Seleziona tutto;
3 - seleziona Elimina dal menu a discesa e fai clic su OK,

Ora puoi iniziare a importare il database mysql. Per fare ciò, attenersi alla seguente procedura:

1 - selezionare il database desiderato;
2 - apri la scheda Importa in menù in alto;
3 - trova tramite Sfoglia copia di backup con il database e fare clic su OK.

Se hai fatto tutto correttamente, nella finestra di phpMyAdmin apparirà un messaggio che indica che l'importazione è andata a buon fine.

Importazione di database MySQL di grandi dimensioni

I webmaster incontrano spesso il problema di importare database MySQL di grandi dimensioni. Il problema è dovuto al fatto che in PHPMyAdmin il download di un dump del database è limitato dalla dimensione del file caricato, che per impostazione predefinita non deve superare i 2 MB (2.048 KB). Quando si tenta di scaricare un dump di un database di grandi dimensioni, viene visualizzato un messaggio di errore: "La dimensione del file di download è probabilmente troppo grande..." ecc.

Diamo un'occhiata a un modo per importare un dump di un database di grandi dimensioni. Il limite della dimensione del file di importazione è determinato dalla configurazione PHP. Le impostazioni di configurazione PHP sono specificate nel file php.ini. Ciò significa che per importare database di grandi dimensioni, dovremo modificare la dimensione massima dei file caricati nel file di configurazione php.ini.

Dove si trova il file php.ini? Puoi calcolare il percorso del file php.ini come segue:

  • Crea un file info.php e inserisci al suo interno il seguente codice;
  • Carica il file creato nella cartella principale del sito (www, public_html);
  • Inserisci l'indirizzo http://tuo_sito/info.php nella barra degli indirizzi del tuo browser;
  • Nella finestra che si apre, trova File di configurazione caricato, dove verrà indicato il percorso del file;

Per importare un database mysql di grandi dimensioni, è necessario modificare le direttive php.ini in PHPMyAdmin.

Il file php.ini è stato trovato, ora non resta che modificarlo, o meglio, cambiare diverse direttive nel file come mostrato di seguito:

Tempo massimo (sec) per caricare completamente lo script:
tempo_max_esecuzione = 60
Il tempo massimo (secondi) specificato affinché lo script riceva tutti i dati:
max_input_time = 90
La quantità massima di memoria che lo script può utilizzare:
limite_memoria = 128M
Dimensione massima consentita dei file caricati:
upload_max_dimensione file = 200 milioni
La dimensione massima dei dati trasferiti che PHP accetterà:
post_max_size = 180M

Modificando le direttive di cui sopra in php.ini, siamo stati in grado di importare tramite Database PHPMyAdmin volume di dati fino a 180 M.

Per importare un dump del database è anche possibile utilizzare versione gratuita Programmi Sypex Dumper. Il dumper è ottimizzato per velocità massima lavorare, oltre a lavorare con database di circa 800 megabyte.