Hai bisogno
di assistenza?
Costruiamo insieme il tuo sito web.
Installazione Joomla!® sul tuo server.
Importare database di grandi dimensioni in MAMP o XAMPP con il Terminale del Mac
Un problema che a volte si presenta quando cerchiamo di trasferire in locale un backup di un sito web remoto creato con Joomla!® riguarda i limiti alla dimensione del database da importare impostati nel phpMyAdmin di MAMP o XAMPP.
In rete vengono suggerite diverse utili soluzioni, modifiche al php.ini, nuova directory di upload e altro, ma non sempre ci risolvono il problema.
Quello che vedremo insieme è come superare le limitazioni imposte dal phpMyAdmin importando il database usando l'utility Terminale del Mac.
Le procedure con MAMP e XAMPP sono molto simili, per questo le ho unite in unico tutorial. Dove ci saranno differenze, verranno esaminate singolarmente.
Le versioni che sto utilizzando sono la 7.1 di MAMP e la 8.2.4 di XAMPP.
Attenzione:
- procedete solo se avete esperienza nell'uso del terminale, della riga di comando e delle istruzioni MySQL;
- lo scenario di riferimento è l'importazione in locale di un database di Joomla!® (esportato in precedenza);
- lo Storage engine deve essere Innodb (MyISAM non supporta le transazioni).
Se vi serve aiuto per l'installazione di MAMP o di XAMPP su Mac vi segnalo questi Tutorial:
per l'installazione di MAMP su MacOS
per l'installazione di XAMPP su MacOS
Nota: a volte è utile "alleggerire" il database prima di esportarlo. In Joomla!® ad esempio nel database potrebbero essere state registrate tutte le azioni degli utenti (User Action Log) che nel tempo possono accrescere anche di molto le dimensioni del database.
Se ritenete di poterne fare a meno, potete cancellarli dal database prima di esportarlo.
Dal backend andate in: User --> User Actions Log --> Clear Log
Avviare MAMP o XAMPP per attivare MySQL
Avviamo MySQL facendo clic su Start di MAMP/MAMP Pro o di XAMPP (in XAMPP far partire sia MySQL che Apache).
Entrare nel pannello di phpMyAdmin
da MAMP (o MAMP Pro), clic su WebStart --> Tools --> phpMyAdmin
oppure il link diretto: http://localhost:8888/phpMyAdmin5/
da XAMPP, dal pannellino --> Tab Welcome --> Go to Application --> phpMyAdmin
oppure il link diretto: http://localhost/phpmyadmin/
Creare un database in phpMyAdmin
A questo punto andiamo a creare il database (vuoto) nel quale importeremo i dati, nel tutorial lo nomineremo: "db_bigdb", voi gli darete il vostro.
Prima di continuare, aprite con un editor di codice il file .sql del database da importare e controllate che tra le prime righe, dopo il comando CREATE TABLE, sia specificato come Storage engine Innodb: ENGINE=InnoDB.
Controllate anche il Character set (CHARACTER SET) e la Collation (COLLATE) perché andranno selezionate al prossimo passaggio.
Tra le più usate abbiamo: utf8mb4_general_ci e utf8mb4_unicode_ci.
Dal Tab Database, inseriamo db_bigdb nella casella apposita "Crea un nuovo database", selezionate la collation e poi clic su Crea.
Note:
- l'avviso "Non ci sono tabelle nel database" ci segnala che il database è stato creato ed è vuoto;
- nei nomi di database locali utilizzo sempre il prefisso db_ per mantenerli in una lista ordinata e separati da quelli di sistema.
Importare database MySQL con il Terminale del Mac
Ora, dopo aver avviato il servizio MySQL e creato il database, lanciamo l'utility Terminale del Mac.
Nota: se volete dare un look più "professionale" alla finestra del Terminale, andate alla fine di questo tutorial: Modificare il file hosts su macOS
se usi MAMP (versione 7.1)
digita il comando sottostante e poi dai Invio
/Applications/MAMP/Library/bin/mysql80/bin/mysql --host=localhost -uroot -proot
il cursore cambia in: mysql>
se usi XAMPP (versione 8.2.4)
digita il comando sottostante:
/Applications/XAMPP/xamppfiles/bin/mysql -u root -p
alla richiesta della password non inseriamo nulla e diamo Invio.
il cursore cambia in: MariaDB [(none)]>
MAMP o MAMP Pro - XAMPP
D'ora in poi i comandi per MAMP, MAMP Pro e XAMPP sono i medesimi.
Per verificare che il database db_bigdb sia presente, digitiamo il comando sottostante e diamo Invio.
SHOW DATABASES;
comparirà una tabellina con l'elenco dei database.
Ora impostiamo il database di lavoro digitando il comando qui sotto e poi diamo Invio:
USE db_bigdb;
compare il messaggio Database changed e in XAMPP il cursore cambia in MariaDB [db_bigdb]>
Ora digitiamo la prima parte del comando per l'importazione, non date Invio dopo averlo inserito!
Attenzione: dopo "source" c'è uno spazio che va mantenuto:
SET autocommit=0 ; source
Adesso trasciniamo l'icona del file .sql del database da importare nella finestra del terminale (serve a prendere il path corretto)
e aggiungiamo in coda:
; COMMIT ;
controllate che prima del primo ";" del COMMIT ci sia uno spazio e a questo punto date Invio.
esempio di comando completo:
mysql> SET autocommit=0 ; source /Users/nomeutente/Desktop/db_daimportare.sql ; COMMIT ;
Man mano che vengono importate vedrete scorrere le tabelle.
L'operazione sarà conclusa al comparire dei cursori mysql> o MariaDB [db_bigdb]>
Ora posso uscire da MySQL dando il comando:
quit
Chiudiamo il Terminale, l'importazione è finita.