Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Sql e ripristino db di grandi dimensioni

    Salve a tutti,
    avrei bisogno di un consiglio. Spesso mi trovo a spostare forum o portali tra diversi hosting e ultmimamente sopratutto con forum abbastanza frequentati mi sono ritrovato con dei file bakup .sql di quasi 50mb!!
    Creare un nuovo Db e fare un'unica query tramite phpmyadmin è impensabile...dato che spesso c'è un limite alla dimensione del file che si da in pasto a phpmyadmin. La soluzione che sto adottando in questi casi ( è pesante lo so) è spezzettare il backup in tante piccole query e farle a mano a mano una per volta. E' un lavoro abbastanza faticoso...anche perchè spesso alcuni editor (vedi un certo PHPDesign) con file sql di grandi dimensioni s'impalla!

    Qualcuno che si trova spesso nella mia situazione..come si comporta? E' questa la strada obbligata da seguire? Non vorrei che ci fossero altre soluzioni di cui non sono a conoscenza! Grazie

    ps. Poi il discorso che post bakup e post ripristino Db le lettere accentate si vedono con caratteri strani ....è un altra storia..ma se avete qualche dritta anche su questo ve ne sono grato :P
    Conoscere gli altri è comprensione
    conoscere se stessi è saggezza

  2. #2
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    guarda questa guida, e vedi se mettendo il file sul server tramite ftp puoi farne il restore come spiegato:

    http://openskills.info/infobox.php?ID=939

  3. #3
    Grazie per la dritta.. ci do un occhiata! :P
    Conoscere gli altri è comprensione
    conoscere se stessi è saggezza

  4. #4
    Ho appurato che non ho accesso all'host via ssh.
    Adesso l'unica strada che mi rimane è quella di creare di creare un file che contiene la query da effettuare..oppure usare un file che fa da import. Ho trovato su questo forum lo script di un utente..ma non riesco a farlo funzionare lo script è questo:

    Codice PHP:
    <?php
    // connessione a mysql
    $host="localhost";
    $utente="user";
    $passwut="password";
    // connessione al db
     
    $link=mysql_connect($host,$utente,$passw
    ut
    );
    if(!
    $link) die("Impossibile connettersi al database MYSQL. [b]Errore[/b]: ".mysql_error());
    $file_db="/var/tmp/dumpdb.sql"// file proveniente dal dump (ometto la parte di upload per semplificare lo script)
    $db_name="NOME_DB";
    if(
    file_exists($file_db)){
    // cancellazione vecchio db
    $query1="DROP DATABASE $db_name";    
    mysql_query($query1,$link) or die("Impossibile eseguire la query [b]$query1[/b]
    [b]Errore[/b]:"
    .mysql_error());    
    // creazione nuovo db
    $query2="CREATE DATABASE $db_name";    
    mysql_query($query2,$link) or die("Impossibile eseguire la query [b]$query2[/b]
    [b]Errore[/b]:"
    .mysql_error());
    $system_query="mysql --user=".$utente." --password=".$passwut." ".$db_name." < ".$file_db
    // $percorso_mysql="C:/Programmi/mysql/MySQL Server 4.1/bin"; // percorso mysql: solo per windows (cambiare se necessario). Commentare su linux
    // DUMP
    // system("\"$percorso_mysql\$system_query"); // per windows. commentare se su linux
    $sr=system$system_query ); // per linux. commentare se su win
    print "

    Database aggiornato! 
    $sr</p>";
    print 
    "

    "
    .$system_query."</p>";
    }
    else print 
    "file non presente";
    ?>
    Quello che non ho capito è la parte in cui dice:

    Codice PHP:
    $percorso_mysql="C:/Programmi/mysql/MySQL Server 4.1/bin"// percorso mysql: solo per windows (cambiare se necessario). Commentare su linux
    // DUMP
    // system("\"$percorso_mysql\$system_query"); // per windows. commentare se su linux
    $sr=system$system_query ); // per linux. commentare se su win 
    E poi io via ftp non ho la cartella /var/tmp/ che dovrebbe contenere il backup del file sql come si evince da qui:

    Codice PHP:
    $file_db="/var/tmp/dumpdb.sql"// file proveniente dal dump (ometto la parte di upload per semplificare lo script) 
    Ho provato a modificare il percorso facendolo puntare ad un altra cartella del mio host tipo /host/home/public_html/database

    Infatti in messaggio è ottengo è : file non presente

    Qualcuno mi aiuta a farlo funzionare?
    Conoscere gli altri è comprensione
    conoscere se stessi è saggezza

  5. #5
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    2 note:

    1.Hai provato a eseguire le operazioni che ci sono in quel link usando system di php?
    2.Sei sicuro di poter fare l'upload via http di file cosi grandi?

    ciao

  6. #6
    Ciao gianiaz,
    grazie mille per la tua risposta!

    Originariamente inviato da gianiaz
    2 note:

    1.Hai provato a eseguire le operazioni che ci sono in quel link usando system di php?
    Per il link ti riferisci a quello che mi hai suggerito? Se si li ho trovato molti comandi interessanti..ma solo per chi ha accesso via ssh. Cosa che io non ho. O forse ho capito male?

    Originariamente inviato da gianiaz
    2.Sei sicuro di poter fare l'upload via http di file cosi grandi?
    ciao
    Si si su quello non ci sono problemi! Ho spazio quasi illimitato e non ho una dimensione massima da rispettare!
    Conoscere gli altri è comprensione
    conoscere se stessi è saggezza

  7. #7
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027
    conosci la funzione:

    http://www.php.net/manual/it/function.system.php

    Serve per lanciare comandi del sistema operativo (come quelli segnalati nel link) attraverso php.
    Potrebbe essere che tu abbia i permessi di esecuzione su quei comandi (questo dipende dalla configurazione server).

    Ciao

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.