Datenbankbackup via phpMyAdmin
Angelegt von Andreas Steinel
Da ich leider mit der rückständigen MySQL-Datenbank auf einigen Rechnern leben muß und ich dort keine Shell habe, wollte ich ergründen, ob ein Datenbank-Dump per Skript über SSL-gesichertes phpMyAdmin möglich ist.
Ja, ich habe mittels http-access2 ein kleines Skript geschrieben, mit dessen Hilfe ich die Datenbank mittels Ruby dumpen kann.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
#!/usr/bin/env ruby # Script for dumping MySQL-Database with phpmyadmin. # Automatic-Dumps are now possible. require 'http-access2' # CONFIG # - - - - - - - - - - - - - - - - - - - - - - - - username = "username" password = "password" database = "datenbank" target = "https://myhost/path/to/phpmysql/" # - - - - - - - - - - - - - - - - - - - - - - - - # Don't edit below this line # - - - - - - - - - - - - - - - - - - - - - - - - login = { #{{{ "pma_username"=>username, "pma_password"=>password } #}}} dump_data = { #{{{ "export_type"=>"database", "db"=>database, "what"=>"sql", "add_character"=>"\\n", "showcolumns"=>"yes", "use_backquotes"=>"1", "max_query_size"=>"50000", "sql_type"=>"insert", "drop"=>"1", "sql_structure"=>"structure", "asfile"=>"sendit", "escaped"=>"\\", "hexforbinary"=>"yes", "extended_ins"=>"yes", "sql_data"=>"data", "sql_auto_increment"=>"1", # "compression"=>"bzip", "if_not_exists"=>"1" } #}}} clnt = HTTPAccess2::Client.new() clnt.set_cookie_store("cookie.dat") clnt.ssl_config.verify_mode = OpenSSL::SSL::VERIFY_NONE # first login and cookie-setup a = clnt.post(target, login) # save token for export. Without this token, nothing works! a.header['location'].to_s =~ /token=([0-9a-f]+)/ dump_data["token"] = $1.to_s # Dumping Data a = clnt.get(target + "export.php", dump_data) puts a.content |