hotti: Remote DatenbankManagement

hi,

auf meinem Server gibts zwar einen phpAdmin, aber die Klickerei ist mir zu doof. Also hab ich mir ein MasterScript geschrieben was als CGI auf dem Server installiert ist (passwortgeschützt).

Mit diesem MasterScript und einem speziellen UserAgent kann ich meine DB (MySQL) auf dem Server remote managen, Tabellen/Daten anlegen, ändern, löschen usw., bei Bedarf automatisiert und das alles per HTTP. Das Script kriegt per POST die entsprechenden SQL-Statements und schickt die Antwort des MySQL-Servers in text/plain zurück zum UA.

Gerne würde ich darüber einen kleinen Artikel schreiben, besteht da ein Interesse?

Hotte

  1. Gerne würde ich darüber einen kleinen Artikel schreiben, besteht da ein Interesse?

    Hotte

    Hallo Hotte, das klingt sehr interessant.

    1. hi,

      Hallo Hotte, das klingt sehr interessant.

      coming soon ;-)

      Danke für den Zuspruch, hier regnets heute den ganzen Tag, was gibts Schöneres als bei einem solchen Sauwetter einen interessanten Artikel zu schreiben. Er wird den Namen remotedbms.html bekommen und in <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> geschrieben sein. Das wird zwar nicht für einen Grimme-Award reichen, sicher aber diesen oder jenen dankbaren Leser finden.

      Und jetzt, lass mich in die Tasten hauen ;)
      Hotte

      --
      Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
  2. auf meinem Server gibts zwar einen phpAdmin, aber die Klickerei ist mir zu doof. Also hab ich mir ein MasterScript geschrieben was als CGI auf dem Server installiert ist (passwortgeschützt).

    Was ist denn jetzt der Unterschied zwischen myphpadmin und deinem Masterskript? Muss man bei dir nicht mehr klicken?

    Mit diesem MasterScript und einem speziellen UserAgent kann ich meine DB (MySQL) auf dem Server remote managen, Tabellen/Daten anlegen, ändern, löschen usw., bei Bedarf automatisiert und das alles per HTTP. Das Script kriegt per POST die entsprechenden SQL-Statements und schickt die Antwort des MySQL-Servers in text/plain zurück zum UA.

    Ja, das meiste davon ist der übliche Weg einer Anwendung auf dem Server.

    Du kannst (wenn dein Hoster es zuläßt) dein mysql Server auch wirklich remote managaen und dir z.b. eine schöne Perl/Tk Anwendung schreiben.

    Gerne würde ich darüber einen kleinen Artikel schreiben, besteht da ein Interesse?

    Naja, wenn du es gerne machen willst, wer sollte dich aufhalten? Mir ist nur nicht klar was jetzt so anders sein soll bei deinem Vorgehen und dem von phpmyadmin.

    Struppi.

    1. hi,

      Was ist denn jetzt der Unterschied zwischen myphpadmin und deinem Masterskript? Muss man bei dir nicht mehr klicken?

      Enter drücken geht auch...

      [..] Mir ist nur nicht klar was jetzt so anders sein soll bei deinem Vorgehen und dem von phpmyadmin.

      ... und noch bevor Du Deinen Browser gestartet hast, sind meine Scripts am Laufen ;-)

      Schönen Sonntag,
      Hotte

      --
      Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
    2. Yerf!

      Du kannst (wenn dein Hoster es zuläßt) dein mysql Server auch wirklich remote managaen und dir z.b. eine schöne Perl/Tk Anwendung schreiben.

      Wieviele lassen das zu? Meine Erfahrungen (die allerdings nicht wirklich repräsentativ sind) sprechen eher dagegen.

      Genau hier kann sein Script mit dem "SQL over HTTP"-Tunnel ansetzen. Die Idee find ich nicht mal schlecht. (*Im Hinterkopf vermerk, für den Fall, dass ich sowas mal brauch*)

      Naja, wenn du es gerne machen willst, wer sollte dich aufhalten? Mir ist nur nicht klar was jetzt so anders sein soll bei deinem Vorgehen und dem von phpmyadmin.

      Wie gut lässt sich phpmyadmin per Script automatisieren? Das ist doch eher dafür ausgelegt von einem Webbrowser aus bedient zu werden. (Natürlich kann man auch das per Script automatisieren, aber da ist die Schnittstelle des RDM-Scriptes doch klarer und einfacher)

      Gruß,

      Harlequin

      --
      <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
      1. » Du kannst (wenn dein Hoster es zuläßt) dein mysql Server auch wirklich remote managaen und dir z.b. eine schöne Perl/Tk Anwendung schreiben.

        Wieviele lassen das zu? Meine Erfahrungen (die allerdings nicht wirklich repräsentativ sind) sprechen eher dagegen.

        z.b. Hosteurope. Bei dem anderen Anbieter den ich nutze, weiß ich es nicht.

        » Naja, wenn du es gerne machen willst, wer sollte dich aufhalten? Mir ist nur nicht klar was jetzt so anders sein soll bei deinem Vorgehen und dem von phpmyadmin.

        Wie gut lässt sich phpmyadmin per Script automatisieren?

        Mir war nicht klar, was er damit bezweckt, darauf zielte ja meine Frage ab, da wir das Skript ja nicht gesehen hatten, war mir nicht klar, dass es um die Automatisierung ging, inkl. .htaccess Zugriffschutz.

        Wobei ich aber befürchte, dass bei einer Datensicherung schnell das Laufzeitlimit zuschlagen kann, vor allem mit Perl.

        Struppi.

        1. Yerf!

          Mir war nicht klar, was er damit bezweckt, darauf zielte ja meine Frage ab, da wir das Skript ja nicht gesehen hatten, war mir nicht klar, dass es um die Automatisierung ging, inkl. .htaccess Zugriffschutz.

          Stimmt. Als "Späteinsteiger" in den Thread hatte ich da schon etwas mehr Informationen.

          Wobei ich aber befürchte, dass bei einer Datensicherung schnell das Laufzeitlimit zuschlagen kann, vor allem mit Perl.

          Wobei das auch bei phpmyadmin eine intressante Frage ist. Dürfte nicht auch dort irgendwann der Timeout zuschlagen? Aber ich denke mal, dass große Backups besser rein serverseitig erledigt werden und man dann nur den fertigen Dump herunterläd.

          Aber bei dem Script kann man zumindest auf einzelne Abfragen aufteilen, die dann je einen eigenen Aufruf darstellen. Somit kann man Timeout-Problemen etwas entgegenwirken. (Allerdings ist das auch eine Performance-Schwäche, dass jeder SQL-Befehl ein eigener Scriptaufruf ist. Aber für administrative Jobs seh ich das nicht als kritisch an)

          Gruß,

          Harlequin

          --
          <!--[if IE]>This page is best viewed with a webbrowser. Get one today!<![endif]-->
          1. hi Ihrs;

            Aber bei dem Script kann man zumindest auf einzelne Abfragen aufteilen, die dann je einen eigenen Aufruf darstellen. Somit kann man Timeout-Problemen etwas entgegenwirken. (Allerdings ist das auch eine Performance-Schwäche, dass jeder SQL-Befehl ein eigener Scriptaufruf ist. Aber für administrative Jobs seh ich das nicht als kritisch an)

            Genauso ist es. Mein MasterScript wickelt pro Aufruf genau ein SQL-Statement ab. Somit geht jeder HTTP-Request auch durch bis connection-close. Für administrative Jobs eher nicht so interessant, es läuft prima und das ist die Hauptsache.

            Ich hab allerdings festgestellt, dass zum Hochladen von Text in MySQL-Text-Spalten ein uri_escape (URI::Escape) UND ein $dbh->quote() gemacht werden muss. Das $dbh->quote() ohne DB-Handle hab ich mal hier im Forum gefunden:

            use DBI;
            my $bodyText = DBD::_::db::quote(undef, $bodyText);

            (Für Scripts, in denen ein DB-Handle nicht gebraucht wird)

            Die Quoterei und Escaperei muss ich mir nochmal genauer anschauen und meinen
            Artikel noch ergänzen.

            Also: Ich finds Klasse ;-)
            Hotte

            --
            Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.
  3. Mit diesem MasterScript und einem speziellen UserAgent kann ich meine DB (MySQL) auf dem Server remote managen, Tabellen/Daten anlegen, ändern, löschen usw.,

    Das kann ich mit phpMyAdmin auch und zwar für beliebig viele Server auf einer Oberfläche.
    Ich bin schon gespannt, was dein Script mehr kann bzw, wie es die Arbeit bei der Remoteverwaltung von mehreren Datenbanken vereinfachen soll.
    Für Arbeitserleichterung bin ich immer zu haben.

    1. moin,

      Für Arbeitserleichterung bin ich immer zu haben.

      Für jede Spezialaufgabe hatte ich bis jetzt:
      ein Script auf dem Server UND ein Script auf meinem Rechner.

      Mit meinem neuen MasterScript auf dem Server fallen alle bisherigen serverseitigen CGI-Scripts für administrative Aufgaben weg.

      Remote DBM

      Hotte

      --
      Sonntag