MENU

MySql .sql importazione da command di windows

Quando si ha un database troppo grande l’importazione da phpMyAdmin diventa impossibile perch√® apache va incontro all’impossibilit√† di uploadare file troppo grandi e l’engine php va in¬† timeout. Sono parametri che si possono configurare da php.ini, i parametri sono ‘post_max_size’ e ‘upload_max_filesize’.¬† Poich√® ‘post_max_size’ √® il limite di tutti i contenuti di un post, si pu√≤ scegliere che¬† ‘post_max_size’ sia un multiplo di ‘upload_max_filesize’ per consentire l’upload multiplo di file ma in questo caso non √® essnziale. Il modulo di upload limita le dimensioni del file che pu√≤ essere uploadato al al pi√Ļ piccolo dei due valori post_max_size, o upload_max_filesize. Il default per PHP √® 2 MB per upload_max_filesize, e 8 MB per post_max_size.
Nel php.ini potete configurare i due valori a 128 MB per esempio

  • upload_max_filesize = 128M
  • post_max_size = 128M

o se permesso dalle configurazioni globali anche da .htaccess nella directory di interesse

  • php_value upload_max_filesize 128M
  • php_value post_max_size 128M

a questo punto dovete anche fare i conti con max_execution_time che definisce appunto il tempo massimo per il quale un singolo script pu√≤ funzionare senza che venga considerato problematico. Il defoult √® 30 (secondi) … potete alzarlo, ma quanto tempo richieda un importazione √® sempre un interrogativo.
Anche in locale se volete tagliare la testa al toro meglio effettuare l’importazione direttamente da shell per qualsiasi sistema operativo. In windows la sintassi √® la seguente
mysql -u USER -p DATABASE < path_to_file/filename.sql
fate in modo che l’eseguzione del comando venga lanciata dalla cartella nella quale avete il file mysqldump.exe. Se anche qui avete un errore sui tempi massimi di eseguzione

Se proprio siete amanti del php potete configurare e usare lo script di ozerov.de

Se invece ricevete l’errore ERROR 1064 dopo l’eseguzione da shell, l’errore non sta nell’importazione ma probabilmente avete esportato con phpmyadmin che ha finito il suo temp di eseguzione ed √® andato in timeout troncando l’eseguzione.

Se avete ancora probelemi… (eh ma basta!!) usate il seguente metodo che √® verboso e acora pi√Ļ efficente:
mysql -u USER -p
a questo punto vi sarà chiesta la password
use DATABASE
source path_to_file/mysqldump.sql

Esportazione

Se girate il verso del segno minore in maggiore (>) e usate mysqldump scarica il contenuto del database (se esiste un file con quel nome il file verrà sovrascritto).
mysqldump -u USER -p DATABASE > path_to_file/filename.sql
Con ‚Äďall-databases scaricate tutti i db del vostro mysql.

Per la cronaca con linux i comandi non sarebbero fondamentalmente diversi

 

1664 Visualizzazioni totali 1 Visualizzazioni odierne

Leave a Comment!

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *