MySQL root Passwort unbekannt/neu erstellen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • MySQL root Passwort unbekannt/neu erstellen

    Hi zusammen,

    kleines/großes Problem.

    Hab hier nen Linux System vor mir, auf dem einiges von nem HiWi an der FH installiert wurde u.a. auch MySQL 3.23.58 installiert und natürlich nichts hinterlassen hat bzw. auch nicht mehr die ganzen Passwörter weiß. Schlapper halt.

    Ich soll das nun halbwegs wieder zum Laufen bringen.
    Diverse Einstellungen und vor allem Passwörter konnte ich schon ändern und kann nun auf die Daten zugreifen, nur das MySQL root-Passwort fehlt noch.

    Wollte es nun zurücksetzten und ein neues vergeben und hab dazu die Anleitung aus dem MySQL-Handbuch benutzt (Steht allerdings nicht dabei, für welche Versionen das gilt):



    1. Fahren Sie den mysqld-Server durch Senden von kill (nicht kill -9) an den mysqld-Server herunter. Die Prozess-Kennung (PID) wird in einer .pid-Datei gespeichert, die sich normalerweise im MySQL-Datenbank-Verzeichnis befindet:

    kill `cat /mysql-daten-verzeichnis/hostname.pid`

    Hierfür müssen Sie entweder der Unix-root-Benutzer sein oder derselbe Benutzer, unter dem der Server läuft.

    2. Starten Sie mysqld mit der --skip-grant-tables-Option neu.

    3. Verbinden Sie sich mit dem mysqld-Server mit mysql -h hostname mysql und ändern Sie das Passwort mit einem GRANT-Befehl. See Abschnitt 5.3.1, „GRANT- und REVOKE-Syntax“. Sie können dasselbe auch mit mysqladmin -h hostname -u benutzer password 'neues_passwort' machen.

    4. Laden Sie die Berechtigungstabellen neu mit mysqladmin -h hostname flush-privileges oder mit dem SQL-Befehl FLUSH PRIVILEGES.
    Tja, aber das will nicht so recht. mysqld hab ich gekillt und anschließend mit der Option gestartet, wobei das wie folgt ging:

    mysqld start --skip-grant-tables


    Aber irgendwie sind anscheinend immer noch die Berechtigungen da und man kann kein root-Passwort neu vergeben. Es kommt immer folgende Meldung:

    ERROR 1045: Access denied for user: 'root [at] localhost' (Using password:NO)


    Hab schon soviele Foren und FAQs durchsucht und immer wieder nur der Hinweis, mit der Skip-Option soll es gehn.
    Hier klappt das aber anscheinend nicht. Oder ich geb irgendwas falsch ein.

    Vielleicht hat ja jemand nen Tipp

  • #2
    da gibt's ja noch was in den user comments im manual...
    ansonsten fand ich hier ganz viele ansätze, evtl. hilft dir ja was: http://www.google.de/search?hl=de&q=...password&meta=

    Kommentar


    • #3
      http://dev.mysql.com/doc/mysql/en/re...rmissions.html

      Kommentar


      • #4
        @penizillin

        Also die Seiten bei Google hab ich gestern alle schon durchgemacht, da war fast immer der gleiche Ansatz, derr bei mir nicht funktioniert. Auch die user comments brachten mich nicht weiter.

        @onemorenerd

        Hmm, die englische Beschreibung des Problems ist weitaus ausführlicher. Könnte eventuell mehr bringen. Ich werds mal testen.


        Besten Dank an euch zwei.

        Kommentar


        • #5

          1. Log on to your system as either the Unix root user or as the same user that the mysqld server runs as.

          2. Locate the .pid file that contains the server's process ID. The exact location and name of this file depend on your distribution, hostname, and configuration. Common locations are /var/lib/mysql/, /var/run/mysqld/, and /usr/local/mysql/data/. Generally, the filename has the extension of .pid and begins with either mysqld or your system's hostname.

          You can stop the MySQL server by sending a normal kill (not kill -9) to the mysqld process, using the pathname of the .pid file in the following command:

          shell> kill `cat /mysql-data-directory/host_name.pid`

          Note the use of backticks rather than forward quotes with the cat command; these cause the output of cat to be substituted into the kill command.

          3. Create a text file and place the following command within it on a single line:

          SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');

          Save the file with any name. For this example the file will be ~/mysql-init.

          4. Restart the MySQL server with the special --init-file=~/mysql-init option:

          shell> mysqld_safe --init-file=~/mysql-init &

          The contents of the init-file are executed at server startup, changing the root password. After the server has started successfully you should delete ~/mysql-init.

          5. You should be able to connect using the new password.

          Damit gings nun endlich. Allerdings statt "mysqld_safe" muss "safe_mysqld" angegeben werden, da die Version älter als 4.0 ist.

          Aber das mit dem --skip-grant-tables funktioniert nach wie vor nicht.
          Na ja, hauptsache ich hab nen neues root-Paswort.

          Gruß Side

          Kommentar

          Lädt...
          X