http://fun.hudo.com/es/cartel/pizza-enorme/

Importare un file Dump MySQL (ma uno grosso), via SSH

Detto che l’SSH è una figata ed è soprattutto molto utile se si usano CMS come WordPress / Drupal o Magento (e un milione di altri), vediamo come usare il terminale per caricare un file Dump di grosse dimensioni.

Ci serve ovviamente un hosting che ci permetta di collegarci via SSH al server stesso, per poter sfruttare in riga di comando quello che potremmo fare con phpMyAdmin (per esempio).

Quando si trasferisce un CMS come Magento, per esempio, il file DUMP (che è il file SQL che contiene tutte le informazioni su tabelle e dati) può diventare molto grosso e, a parte la capacità di caricare file di phpMyAdmin che a volte è limitata a 32Mb o 50Mb, il problema potrebbe essere quello che il server non è fisicamente in grado di gestire quella mole di dati e si impalla, lasciandoci con il fiato sospeso e sudore freddo.

Cosa possiamo fare quindi?

  1. Selezionare poche tabelle per volta durante l’eportazione da phpMyAdmin  importare quindi tanti file dump più piccoli
  2. Esportare un file grosso, dividerlo in tanti file piccoli tramite software tipo SQLDumpSplitter 2 (di http://www.sqldumpsplitter.com)
  3. usare SSH

SSH, j’adore

questo è davvero geniale, perchè puoi esportare il file grosso (ho elaborato anche un mySQL da 900Mb) da phpMyAdmin, magari zippato, e ributtarlo nel nuovo MySql con due righe di codice:

una volta che ha terminato di caricarlo sul nuovo server, collegati via SSH e scompattalo tramite terminale così:

gzip -d nome_dump.sql.gz

questo scompatta il file (cancellando il .gz) e poi importi il file creato “nome_dump.sql” così

mysql -u nome_utente_database -p  [-h nome_host] nome_database < nome_dump.sql

I parametri sono semplici:

  • nome_utente è il nome dell’utente con tutti i privilegi
  • -h nome_host serve nel caso stai procedendo su un server esterno a dove sei adesso. Se mysql è sul server locale (localhost), non scrivere quel parametro.
  • nome_database è il nome del database
  • nome_dump.sql è dump

all’invio del comando dovrai inserire la password del database (che non viene stampata a monitor).

NOTA: non vedrai nessun segno che il server sta lavorando. Ma solo quando avrà finito tornerà il cursore come di consuetudine. Porta pazienza e basta, stai importando un bestione di database, non pretendere.

 

Dai un’occhiata anche a questo articolo, puoi sempre adattarlo a necessità: “Importare un dump di mySql, via terminale”