1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Wir danken allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben.

MySQL-Datenbank startet nicht mehr

Dieses Thema im Forum "Software" wurde erstellt von graphitto, 3. September 2005.

  1. volkspost

    volkspost New Member

    Graphitto:
    Mit Update meinte ich ein Update von einer früheren MySQL-Version.
    Die MySQL-Versionen haben alle pre- und post-Installationsscripts, zum Aufräumen und Rechte-setzen.

    User-Passwörter: MySQL setzt ab Version 4.1 auf ein Authetifizierungsprotokoll basierend auf Passwort Hashing. Wenn Du also eine Datenbank auf dem Mac hast, die unter einer Version vor 4.1 entstanden ist und diese jetzt unter >4.1 nutzen willst, ist das der Grund. Greifen alte "Clients" (auch PHP) darauf zu, geht nix.
    Mit dem Befehl
    mysql> SET PASSWORD FOR
    -> 'some_user'@'some_host' = OLD_PASSWORD('newpwd');

    is dann wieder alles brav. Geht wohl nur über das Terminal, danach kannst Du wieder mit phpMyAdmin zugreifen.


    Mehr dazu gibt es unter
    http://dev.mysql.com/doc/mysql/en/old-client.html

    Viele Grüße

    volkspost
     
  2. volkspost

    volkspost New Member

    Wenn das root-PWD samt user geht kannst Du ja auch über phpMyAdmin an die Datenbank. Um unter >4.1 die Passwörter für die User neu zu setzen, benötigst Du die hash-Werte der Passwörter. Eine klasse Seite dazu mit hash-Generator findest Du unter:
    http://bfl.rctek.com/tools/?tool=hasher


    volkspost
     
  3. :crazy:

    Ich mach mich dünn hier, versprochen!
     
  4. graphitto

    graphitto Wanderer

    Mach dir nix draus, gratis, wenn es in die Details geht bin auch ich froh, das es hier einen wie Volkspost gibt, der sich mit der Chose auskennt. ;)

    @Volkspost
    Ein Update ist tatsächlich gelaufen, allerdings hab ich das nach dem Nicht-mehr-Starten selbst vorgenommen. Die Versionen haben sich dabei von 4.1.8 auf 4.1.12 verändert.

    Aber das Problem lag woanders. In der config.inc.php (unter phpmyadmin) war ein von mir vorher angelegter User als default eingetragen. Den hab ich auf root zurückgesetzt und siehe da, ich komme wieder in den Admin rein.
    Dafür sind jetzt sämtliche von mir angelegten DB-User weg, und die Datenbanken für serendipity, moodle, Readxo usw. komplett leer. Werde ich wohl alles noch mal neu erstellen müssen.

    Ich habe allerdings noch ein Backup aus der 4.1.8. Ob ich das problemlos zurückspielen kann? Was meinst du?

    gruß
     
  5. volkspost

    volkspost New Member

    Sorry, war unterwegs. Spiel das Teil zurück. Da MySQL bei Dir auf der Maschine liegt, kannst Du ja mal zum Testen ne neue Datenbank anlegen und das Backup da reinkübeln. Dann checkst Du, ob alles vorhanden ist. geht alles prima mit phpMyAdmin.
    Hast Du das backup seinerzeit mit phpMyAdmin gemacht? Wenn ja, inklusive "Drop Tables"? Kannst du sehen, wenn Du das Backup der DB mit einem Texteditor öffnest. Dann steht da sowas wie:

    DROP TABLE IF EXISTS `volkspost_address`;
    CREATE TABLE `volkspost_address` (
    `address_id` int(11) NOT NULL auto_increment,
    ......

    Der SQL-Befehl sagt: "Wenn hier ein Table mit namen volkspost_address existiert, dann lösch ihn erstmal." Wenn Du den Befehl auf der aktuellen DB ausführst wird alles gelöscht und durch Dein Backup unwiederbringlich ersetzt.
    Deshalb erzeuge ich mit phpMyAdmin in solchen Fällen eine zusätzliche DB, etwa mit namen originalname_backup und führe darauf das Backup aus. dann erstmal checken...

    Folgendes Vorgehen würde ich Dir empfehlen. Ich weiß nicht, wie gut Du Dich mit phpMyAdmin auskennst also hier das Kochrezept.

    1. Einwählen in phpMyAdmin "Exportieren" wählen. Dann unter der Db den Link "Alle auswählen", bzw alle Tables manuell auswählen.

    2. Im rechten Teil des Fensters unter "Struktur" die Option "Mit Tables" aktivieren.

    3. Im unteren Teil des Fensters die Box "Senden" aktivieren und dann als Gzip sichern (auf die Festplatte). Damit hast Du die geschrottete DB auf der Platte gesichert.

    Restore

    1. Falls Dein Backup mit "Drop tables" ausgestattet ist, kannst Du die geschrottete jetzt überschreiben, hast ja ein Backup.

    2. Am besten ist es, wenn das Backup als Text und nicht als Gzip vorliegt, also auspacken auf der Schreibtischoberfläche.

    3. In phpMySQL die Option "SQL/Dateiimport" auswählen und die ausgepackte Datein wählen.

    4. Daumen drücken

    5. Als DB-root solltest Du auf die DB weiter zugreifen können. Falls Du nicht als normaler DB-User zugreifen kannst, rufst Du die Datenbank mysql auf. Darin findest Du im Feld user alle Benutzer samt Passwort als hash. Sollte der Hashwert nur 16 Stellen haben, hast das vorher beschriebene Problem...

    6. Ich drück Dir die Daumen.

    volkspost

    P.S.:Sorry Gratis für das Tech-Gelaber. MySQL ist extrem klasse aber leider nicht ganz trivial und manchmal will das Mistding nicht so, wie es sollte.
     
  6. graphitto

    graphitto Wanderer

    Hallo Volkspost,

    erstmal danke für die ausführliche Anleitung. Leider hatte ich das Backup nicht über phpmyadmin gemacht, sondern direkt über das WebserverXKit. Das legt eine Kopie des mysql-Ordners an. Leider hat das Kit keine Möglichkeit die Daten auch wieder einzuspielen und händisch klappt es auch nicht so recht.

    Ist inzwischen aber egal, ich habe die Datenbanken/User in phpmyadmin neu angelegt und in den Anwendungen meine dortigen Backups wieder eingespielt. Jetzt mach ich aber erst mal ein Backup über phpmyadmin, damit ich auf der sicheren Seite bin.

    Danke nochmal und

    gruß
     

Diese Seite empfehlen