Se stai migrando manualmente il tuo sito web o hai semplicemente bisogno di importare determinati file SQL nel tuo database, questo articolo ti mostrerà come importare più file SQL in MySQL. Utilizzeremo sia un'interfaccia grafica che la riga di comando di MySQL.
Per cominciare, si consiglia vivamente di non importare un database su un sito Web live. Prima di tentare di importare qualsiasi file SQL, arrestare il server Web ed eseguire un backup del database.
Importa il database usando phpMyAdmin
Presumo che il tuo host abbia già installato phpMyAdmin sul tuo server. Se stai eseguendo un VPS e non hai phpMyAdmin installato, ti spiegherò come installare phpMyAdmin su Linux in dettaglio in un articolo separato.
La maggior parte degli host impone limiti di caricamento dei file severi e un tempo massimo di esecuzione. Se il limite di caricamento dei file del tuo server è molto basso (2 MB) e i tuoi file di database sono numerosi e grandi, il processo di esportazione fallirà sempre. phpMyAdmin, d'altra parte, è abbastanza intelligente da riprendere l'importazione da dove era stata interrotta. Quindi, se raggiungi il limite massimo di esecuzione, ricarica i file e phpMyAdmin riprenderà l'importazione da dove era stata interrotta. Tuttavia, è preferibile aumentare il limite tramite cPanel o modificando manualmente php.ini.
Aumenta la dimensione del caricamento del file PHP su VPS
Per aumentare il limite massimo di upload PHP, apri php.ini e modifica le seguenti righe –
; https://php.net/cgi.check-shebang-line ;cgi.check_shebang_line=1 ;;;;;;;;;;;;;;;; ; File Uploads ; ;;;;;;;;;;;;;;;; ; Whether to allow HTTP file uploads. ; https://php.net/file-uploads file_uploads = On ; Temporary directory for HTTP uploaded files (will use system default if not ; specified). ; https://php.net/upload-tmp-dir ;upload_tmp_dir = ; Maximum allowed size for uploaded files. ; https://php.net/upload-max-filesize upload_max_filesize = 2M
La dimensione massima del file di caricamento è impostata su 2 MB per impostazione predefinita. Modificalo con la dimensione del file che desideri. Scorri verso il basso fino a post_max_size
. Aumenta il post_max_size
alla dimensione necessaria se è impostata su 8 MB per impostazione predefinita.
Scorri fino in fondo e cerca max_execution_time
. Il max_execution_time
predefinito è impostato su 30 , che è troppo breve per importare file di database di grandi dimensioni. In uno dei miei processi di importazione, ho dovuto impostare il max_execution_time
a 3600 secondi o un'ora. Aumenta questo limite in base alle dimensioni dell'importazione.
Aumenta la dimensione del caricamento del file PHP su cPanel
cPanel è il popolare pannello di controllo utilizzato dalla maggior parte dei provider di hosting. cPanel permette facilmente di cambiare il PHP upload_max_filesize
, post_max_size
e max_execution_time
.
Accedi al tuo account cPanel e segui i passaggi seguenti per modificare le impostazioni PHP –
Fare clic su Editor INI MultiPHP dalla dashboard di cPanel.
Seleziona il nome di dominio in cui è ospitato phpMyAdmin o seleziona Home Directory per modificare le impostazioni PHP per tutti i domini. Ora dovresti vedere tutte le impostazioni PHP. Modifica max_execution_time
a 3600 (1 ora), memory_limit
a 512 MB, upload_max_filesize
e post_max_size
al tuo valore preferito.
Dopo aver modificato le impostazioni, fare clic su Applica. Ora phpMyAdmin è pronto per importare più file SQL.
Aumenta la dimensione del caricamento del file PHP su DirectAdmin
DirectAdmin è un altro popolare gestore di hosting. DirectAdmin fornisce anche un metodo più semplice per modificare le impostazioni PHP. Nella dashboard, fai clic su Impostazioni PHP .
Fare clic sul pulsante Aggiungi e selezionare file_uploads, modificarne il valore su Attivo. Aggiungi un'altra impostazione, seleziona max_execution_time
e impostare il valore su 1800 o 3600 (dipende dalla dimensione dell'importazione). Per file SQL più grandi, potrebbe essere necessaria più di un'ora o anche di più. Allo stesso modo, cambia post_max_size
, upload_max_filesize
e max_memory
impostazioni.
Se stai utilizzando un altro pannello di web hosting, ti consiglio di esaminarne le impostazioni o di contattare l'assistenza per modificare le impostazioni PHP sul server.
Ora è il momento di iniziare il processo di importazione del database. Nel browser web, avvia phpMyAdmin e vai a Importa. È possibile selezionare un singolo file e quindi fare clic su Vai. È possibile modificare le impostazioni in base al file SQL da importare. Nella maggior parte dei casi, le impostazioni predefinite sarebbero sufficienti.
Ma importerà solo un singolo file. Per importare più file SQL, crea un .zip di tutti i file sql, rinomina lo zip nel formato – filename.[format].[zip]
. Ad esempio, wordpress.sql.zip
.
A seconda del numero e della dimensione dei file, il processo di importazione potrebbe richiedere del tempo. Al termine del processo, i dati importati saranno visibili in Database .
Importa il database utilizzando la riga di comando di MySQL
AvvisoSi consiglia vivamente di eseguire il backup del database esistente prima di migrare o aggiungere nuovi file di dati al database esistente.
Se vuoi semplificare e velocizzare il processo, ti consiglio di utilizzare la riga di comando mysql per importare i file di database. Può sembrare complicato, ma non lo è. Dopo aver modificato le impostazioni PHP, basta un solo comando per eseguire il trucco.
Elimina il vecchio database e importa nuovi file SQL
AvvisoIl comando seguente sostituirà tutti i dati esistenti con i nuovi dati. Non utilizzare questo comando se si desidera importare dati in un database esistente ma quando si migra un vecchio database su un server nuovo di zecca.
Trasferisci tutti i file .sql sul server. SSH nel server, cd nella directory in cui sono archiviati i file SQL e utilizza il comando seguente per importare tutti i file sql.
sudo cat *.sql | mysql -u root -p database_name
Sostituisci database_name con il nome del database effettivo sul server.
Mantieni il vecchio database e importa nuovi file SQL
I nuovi file SQL verranno importati utilizzando il comando seguente. Se sono presenti chiavi corrispondenti nel database, le salterà e importerà solo i dati che non esistono nel database corrente.
sudo cat *.sql|sed 's/^INSERT/INSERT IGNORE/'|mysql -u root -p database_name
Conclusione
Questo è tutto ciò che c'è da fare. La migrazione del database è un'impresa ad alto rischio. Potrebbero verificarsi alcuni errori del server durante il processo di importazione; ma, se hai un backup completo del database, sei al sicuro. Prima di migrare il database sul server di produzione, ti consiglio di creare un clone o un server di staging e di esercitarti sui processi su di esso.
In caso di problemi con le istruzioni di cui sopra, fatemelo sapere nella sezione commenti sotto questo articolo. Oppure unisciti al nostro Discord Server.