lixx: mysqldump per MySQL-Syntax

Hallo Liste!

Kann man auch einen mysqldump per MySQL-Syntax von einem server zum anderen machen? Also ohne command line (v5.1.44)

Oder:
Ich spiele mich gerade mit eclipse und möchte meine Projekte ebenfalls vollständig auf meinem localhost haben. Mit Aptana Studio kann man ja die Projekte mit FTP synchronisieren, geht das auch irgendwie mit MySQL-Datanbanken?

Vll noch wichtig: Es gibt auf den Webserver keinen Shell-Zugriff!

lg lixx

  1. Hi!

    Kann man auch einen mysqldump per MySQL-Syntax von einem server zum anderen machen? Also ohne command line (v5.1.44)

    Mir ist keine fertige lösung bekannt, aber das müsste gehen, wenn auch nicht sehr einfach und schön. Alles was MySQL mit "MySQL-Syntax" liefert, sind Ergebnismengen von Abfragen. Du kannst sicherlich mit einer Stored Procedure einen Text erstellen, den du in einer Erebnismenge bestehend aus einer Zeile und einer Spalte liefern kannst. Das müsstest du dann für den Ziel-Server auseinandernehmen und statementweise an selbigen schicken. Oder du verwendest mysqli_multi_query().

    Eine einfachere Möglichkeit gäbe es mit dem phpMyAdmin, der Dumps erstellen kann. Du kannst natürlich auch dessen Prinzip nachahmen und Metainformationen und Daten zu Fuß abfragen und zu einem Dump zusammenfügen.

    Lo!

    1. Hi dedlfix!

      danke für deine Antwort. Habe noch die SHOW CREATE TABLE gefunden. Aber ohne SQL-Dump wie bei phpMyAdmin ist mir das zu kompliziert.

      Versuche es noch per command line mit dem Terminal. Habe da aber auch Probleme mit (http://forum.de.selfhtml.org/?t=200420&m=1350591).

      lg lixx

      Hi!

      Kann man auch einen mysqldump per MySQL-Syntax von einem server zum anderen machen? Also ohne command line (v5.1.44)

      Mir ist keine fertige lösung bekannt, aber das müsste gehen, wenn auch nicht sehr einfach und schön. Alles was MySQL mit "MySQL-Syntax" liefert, sind Ergebnismengen von Abfragen. Du kannst sicherlich mit einer Stored Procedure einen Text erstellen, den du in einer Erebnismenge bestehend aus einer Zeile und einer Spalte liefern kannst. Das müsstest du dann für den Ziel-Server auseinandernehmen und statementweise an selbigen schicken. Oder du verwendest mysqli_multi_query().

      Eine einfachere Möglichkeit gäbe es mit dem phpMyAdmin, der Dumps erstellen kann. Du kannst natürlich auch dessen Prinzip nachahmen und Metainformationen und Daten zu Fuß abfragen und zu einem Dump zusammenfügen.

      Lo!

      1. Moin!

        Du kannst versuchen mysql-dump auf dem Server in einer subschell auszuführen.

        In PHP gänge das etwa so:

        $shell='mysqldump -u USERNMAE --password="PASSWORD" --weitere-optionen DATEBANK | gzip -cfq 1> DATENBANK.sgl.gz 2> error.log.txt; echo ?0';  
          
        $dummy=`$shell`;  
        if ($dummy > 0) {  
             echo ("Beim Ausführen des Befehls '$shell' ist ein Fehler aufgetreten:\n<pre>");  
             readfile('error.log.txt');  
             unlink ('error.log.txt');  
             exit;  
        }  
        if (is_file('error.log.txt')) {  
             unlink ('error.log.txt');  
        }
        

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix

    2. Moin!

      Eine einfachere Möglichkeit gäbe es mit dem phpMyAdmin, der Dumps erstellen kann. Du kannst natürlich auch dessen Prinzip nachahmen und Metainformationen und Daten zu Fuß abfragen und zu einem Dump zusammenfügen.

      phpMyAdmin hat(e)? Probleme mit "großen" Datenbanken.

      Dazu fällt mir gerade ein: Das habe ich doch schon mal gemacht.

      MFFG (Mit freundlich- friedfertigem Grinsen)

      fastix

      1. Hi!

        phpMyAdmin hat(e)? Probleme mit "großen" Datenbanken.

        Liegt das Problem dann bei phpMyAdmin oder kann das vielleicht nichts dafür, weil PHP in einen Timeout oder eine Speicherbegrenzung rennt?

        Lo!

        1. Moin!

          phpMyAdmin hat(e)? Probleme mit "großen" Datenbanken.
          Liegt das Problem dann bei phpMyAdmin oder kann das vielleicht nichts dafür, weil PHP in einen Timeout oder eine Speicherbegrenzung rennt?

            
          list($ResultierendesProblem, $GrundProblem) = explode('oder', 'bei phpMyAdmin oder  weil PHP in einen Timeout oder eine Speicherbegrenzung rennt', 2);
          

          MFFG (Mit freundlich- friedfertigem Grinsen)

          fastix

          1. Hi!

            phpMyAdmin hat(e)? Probleme mit "großen" Datenbanken.
            Liegt das Problem dann bei phpMyAdmin oder kann das vielleicht nichts dafür, weil PHP in einen Timeout oder eine Speicherbegrenzung rennt?

            list($ResultierendesProblem, $GrundProblem) = explode('oder', 'bei phpMyAdmin oder  weil PHP in einen Timeout oder eine Speicherbegrenzung rennt', 2);

              
            Gut, dann wird man mit einem selbst geschriebenen Dump-Script in das gleiche Problem laufen. Wenn man die Shell-Methode nimmt, kann es sein, dass man Glück hat. Es kommt darauf an, ob die von der Shell verbrauchte Zeit der PHP-Script-Laufzeit zugerechnet wird oder nicht. Wobei es auch sein kann, dass eine externe Zeitbegrenzung zuschlägt, der egal ist, ob PHP oder ein davon angestoßener Prozess die zugestandene Rechenzeit auffrisst. Bei 1&1 ist es beispielsweise so, dass da der PHP-Prozess gekillt wird, wenn die Zeit abgelaufen ist.  
              
              
            Lo!
            
            1. Moin!

              Gut, dann wird man mit einem selbst geschriebenen Dump-Script in das gleiche Problem laufen.

              Mit der nicht gerade unerheblichen Differenz, dass die Datenbanken der 1und1 Internet AG sich bis zum Killen des Skriptes zwar mit mysqldump dumpen lassen nicht jedoch mit dem phpMyAdmin. Das ist wohl eine Frage der Geschwindigkeit.

              Der phpMyAdmin hatte, als ich noch bei 1und1 Kunde war und keinen SSH-Zugang hatte, mittendrin kommentarlos(!) abgebrochen und ich hatte - ohne es zu wissen - unbrauchbare Dumps. Das war dann der Grund für 1. das Skript und 2. den Umzug. Jetzt habe ich 1. ssh und kann 2. sogar von jedem Ort der Welt (mit einem Internetanschluss) aus mittels beliebigen Clients (auch mysqldump ist genau genommen einer) auf die Datenbank zugreifen.

              Welch unerhörter Luxus!

              MFFG (Mit freundlich- friedfertigem Grinsen)

              fastix

              1. Hi!

                Der phpMyAdmin hatte, als ich noch bei 1und1 Kunde war und keinen SSH-Zugang hatte, mittendrin kommentarlos(!) abgebrochen

                Ja, das liegt aber an der Laufzeit-Begrenzung von 1&1' Webhosting-Paketen. Jedes Script bricht bei deren Zuschlagen kommentarlos ab. Meines Wissens sieht man nicht einmal in irgendwelchen Logs, wenn das passiert. Seit ich damals dort anfing Kunde zu sein hat sich jedoch auch die Rechenleistung still und heimlich gesteigert. Früher musste ich auch den Umweg über die PHP-Shell gehen und das CLI-Programm mysql aufrufen, um eine bestimmte Datenmenge einzuspielen. Aber mittlerweile ist das in meinem Fall nicht mehr nötig, denn es läuft auch mit dem phpMyAdmin-Import problemlos durch. Die Datenmenge ist ungefährt gleich, vielleicht etwas höher als früher.

                Jetzt habe ich 1. ssh und kann 2. sogar von jedem Ort der Welt (mit einem Internetanschluss) aus mittels beliebigen Clients (auch mysqldump ist genau genommen einer) auf die Datenbank zugreifen.

                Hauptsache ist, dass nur du das kannst, wie auch immer du das absicherst. Nicht ohne Grund begrenzt man gern beispielsweise netzwerktechnisch den Zugriff auf den MySQL-Server auf das internen Netz.

                Welch unerhörter Luxus!

                Einhergehend mit der eigenen Verantwortung um die Sicherheit. Nicht dass sie beim Hosting nicht vorhanden wäre - die Verantwortung - aber sie ist da in der Regel geringer.

                Lo!