Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Script o Tool per Backup DB mySql

    Sto cercando uno script o un tool (in ASP) per aggiungere nell'admin un pulsante che permetta di esportare un database di mysql in locale.
    Dove posso trovare qualcosa...
    Ho cercato tanto, ma forse non cerco la cosa giusta.
    Grazie,
    Luigi. :master:

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    <%
    server.ScriptTimeout = 300 '5 minuti
    
    inizioTempo = Timer()
    
    'Recupero il nome del database
    db_backup = trim(Request.Form("db_backup"))
    if len(db_backup) = 0 then Response.Redirect Request.ServerVariables("HTTP_REFERER")
    
    'Cartella con i permessi di scrittura
    folder_file = ("public")
    
    'Path assoluto
    path_translated = Request.ServerVariables("path_translated")
    pos_path = instrrev(path_translated,"\")
    path = left(path_translated, pos_path)
    
    'Path per la scrittura dei file .sql e .txt
    write_path = path & folder_file &"\"
    
    'Path corretto per essere usato direttamente nella query sql
    write_path = replace(write_path,"\","\\")
    
    call dbConnect(db_backup)
    
    response.write ("<html>")
    response.write ("<title>Backup</title>")
    response.write ("<body style=""font-family:verdana;font:12px;"">")
    
    'Scorro le tabelle
    Set Rs = Server.CreateObject("ADODB.Recordset")
    strTables = "SHOW TABLES;" 'Query standard di MySQL
    Rs.Open strTables, objConn
    if not rs.EOF then
    	
    	create_tables = ""
    	Response.Write ("Script per la creazione e il backup delle tabelle
    ")
    	
    	do while not(rs.eof)
    		
    		'+----------------------------+
    		'|- SCRIPT CREAZIONE TABELLE -|
    		'+----------------------------+
    
    		Set Rs2 = Server.CreateObject("ADODB.Recordset")
    		strShowCreateTables = "SHOW CREATE TABLE "& rs(0) &";" 'Query standard di MySQL
    		Rs2.Open strShowCreateTables, objConn
    		if not Rs2.EOF then
    			'Creo il contenuto del file .txt con le istruzioni per la creazione
    			'delle tabelle del database di restore
    			if create_tables = "" then
    				create_tables = Rs2(1) &";"& VbCrLf & VbCrLf
    			else
    				create_tables = create_tables &	Rs2(1) &";"& VbCrLf & VbCrLf
    			end if
    
    			'Visualizzo l'esito degli script di creazione tabelle
    			Response.Write ("Tabella '"& Rs(0) &"': script di creazione eseguito!
    ")
    		end if		
    		Rs2.Close
    		set Rs2=nothing
    		
    		'+-----------------------+
    		'|--- BACKUP TABELLE ----|
    		'+-----------------------+
    
    		'Effettuo il backup, tabella per tabella, in file .sql separati
    		'il cui nome prende spunto dal nome della tabella
    		strInFile = ""
    		strInFile = strInFile &"SELECT * INTO OUTFILE '"& write_path & rs(0) &".sql' "
    		strInFile = strInFile &"FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '""' "
    		strInFile = strInFile &"LINES TERMINATED BY '\n'"
    		strInFile = strInFile &"FROM "& rs(0) &";" 'Query standard di MySQL
    		objConn.Execute (strInFile)
    
    		'Visualizzo l'esito degli script di backup delle tabelle
    		Response.Write ("Tabella '"& Rs(0) &"': backup eseguito!
    
    ")
    		
    	rs.movenext
    	loop
    end if
    rs.close
    set rs = nothing
    
    'Inserisco in un file .txt gli script di creazione delle tabelle (vuote)
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set MyFile = fso.CreateTextFile(server.MapPath(folder_file &"/crea_tabelle.txt"), True)
    MyFile.Write (create_tables)
    MyFile.Close
    Set MyFile = nothing
    
    Response.Write ("<form method=""post"" action=""restore.asp"">")
    Response.Write ("
    
    Nome del DB MySQL nel quale effettuare il restore
    ")
    Response.Write ("<input type=""text"" name=""db_restore"" value="""& db_backup &"_backup"" style=""font-family:verdana;font:11px;"" size=""30"" />")
    Response.Write ("<input type=""hidden"" name=""db_backup value="""& db_backup &""" />")
    Response.Write ("
    
    <input type=""reset"" name=""annulla"" value=""Annulla"" style=""font-family:verdana;font:11px;"" /><input type=""submit"" name=""submit"" value=""Restore"" style=""font-family:verdana;font:11px;"" />")
    Response.Write ("</form>")
    
    response.Write ("
    
    Elenco dei file di backup creati per ogni tabella (a puro titolo informativo)")
    response.Write ("
    "& ShowFolderList(folder_file))
    	
    response.write ("
    Tempo di esecuzione: "& (timer() - inizioTempo)) &" secondi."
    
    response.write ("</body>")
    response.write ("</html>")
    call dbDisconnect(db_backup)
    
    'FUNCTION
    'Visualizzazione file in una cartella e link al file stesso
    Function ShowFolderList(folderspec)
    	Set fso = CreateObject("Scripting.FileSystemObject")
    	Set f = fso.GetFolder(server.MapPath(folderspec))
    	Set fc = f.Files
    	cont = 1
    	For Each f1 in fc
    		if right(f1.name, 3) = "sql" then
    			s = s & right("00"& cont,3) &": "& f1.name &""
    			s = s & VbTab & f1.size/1000000 & " Mb 
    "
    			cont = cont + 1
    		end if	
       Next
       ShowFolderList = s
    End Function
    
    'SUB
    Dim objConn
    'Apertura connessione database di backup
    sub dbConnect(db_backup)
    	connectionstring = "DRIVER={MySQL ODBC 3.51 Driver};DATABASE="& db_backup &";SERVER=localhost;UID=root;PASSWORD="
    	set objConn = server.createObject("ADODB.Connection")
    	objConn.Open connectionstring
    end sub
    
    'Chiusura connessione database di backup
    sub dbDisconnect(db_backup)
    	objConn.close
    	set objConn = nothing
    end sub
    %>
    Roby

  3. #3
    Sei Grande!
    Ti offrirei un caffè, se potessi!
    Lo provo subito!

  4. #4

    da Db mySQL in MDB Access

    Lo script è fantastico...

    ma si può far in modo di esportarlo in MDB , in modo da visualizzare il contenuto direttamente in Access .
    Cioè da MySQL, backapparlo e aprirlo in access...
    Grazie infinite!

  5. #5
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Sogni! Utilizzano SQL differenti.

    Roby

  6. #6

    Da MySQL ad Access

    Credevo fosse possibile in quanto MySQL permette di esportare i DataBase in formato MDB per Access.

    Forse mi sono spiegato male.
    Praticamente essendo access un Software reperibile "nei PC di tutti", sarebbe più semplice poter avere un backup in MDB.

    Ma se mi dici che è impossibile... smetto di cercarlo!

  7. #7
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non è impossibile, io non l'ho fatto però.

    Roby

  8. #8
    e come dovrei impostare una ricerca?
    Credo stare cercando nelle direzioni sbagliate...
    Dove posso cercare e soprattutto cosa?

  9. #9
    Utente di HTML.it L'avatar di wegawhite
    Registrato dal
    Aug 2004
    Messaggi
    1,400
    Ciao.

    Sto utilizzando lo script proposto da Roby in questa discussione.

    Le tbl vengono regolarmente create all'intenro della cartella public, ma lo script restituisce quest'errore a mio avviso strano sulla riga in grassetto del codice:

    Tipo di errore:
    Errore di run-time di Microsoft VBScript (0x800A0046)
    Autorizzazione negata
    /backup_mysql.asp, line 87


    codice:
    'Inserisco in un file .txt gli script di creazione delle tabelle (vuote)
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set MyFile = fso.CreateTextFile(server.MapPath(folder_file &"/crea_tabelle.txt"), True)
    MyFile.Write (create_tables)
    MyFile.Close
    Set MyFile = nothing
    Da che dipende visto che cmq nella cartella è possibile scriverci?

  10. #10
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Evidentemente no...

    Roby

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 © 2025 vBulletin Solutions, Inc. All rights reserved.