Datenbankbackup via phpMyAdmin

Angelegt von Andreas Steinel Mon, 28 Aug 2006 02:32:00 GMT

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

Posted in ,  | Tags , , ,  | keine Kommentare