Eine wesentliche Komponente des MySQL-Installationsprozesses ist
        die Einrichtung der mysql-Datenbank, die die
        Grant-Tabellen enthält:
      
Windows-Distributionen enthalten vorinitialisierte Grant-Tabellen, die automatisch installiert werden.
Unter Unix werden die Grant-Tabellen durch das Programm mysql_install_db ausgefüllt. Einige Installationsmethoden führen dieses Programm für Sie aus. Andere wiederum erfordern eine manuelle Ausführung. Detaillierte Informationen finden Sie in Abschnitt 2.9.2, „Schritte nach der Installation unter Unix“.
Die Grant-Tabellen definieren die vorgabeseitigen MySQL-Benutzerkonten und deren Zugriffsberechtigungen. Diese Konten werden wie folgt eingerichtet:
            Es werden Konten mit dem Benutzernamen
            root erstellt. Dies sind
            Superuser-Konten, die alles dürfen. Anfänglich sind die
            Passwörter der root-Konten leer, d. h.,
            jeder kann als root —
            ohne Passwort  — eine Verbindung
            mit dem MySQL Server herstellen und erhält alle
            Berechtigungen.
          
                Unter Windows wird genau ein
                root-Konto erstellt. Dieses erlaubt
                nur eine Verbindung über den lokalen Host. Das
                Windows-Installationsprogramm erstellt optional ein
                Konto, welches Verbindung von beliebigen Hosts
                ermöglicht. Dieses Konto wird jedoch nur dann angelegt,
                wenn die Option Enable root access from remote
                machines während der Installation gewählt
                wurde.
              
                Unter Unix sind beide root-Konten
                für Verbindungen vom lokalen Host vorgesehen.
                Verbindungen vom lokalen Host müssen unter Angabe von
                localhost für das eine Konto bzw.
                des tatsächlichen Hostnamens oder der IP-Nummer für
                das andere Konto hergestellt werden.
              
Es werden zwei Konten für anonyme Benutzer erstellt; bei beiden ist der Benutzername leer. Die anonymen Konten haben kein Passwort, d. h., jeder kann über sie eine Verbindung zum MySQL Server herstellen.
                Unter Windows wird ein anonymes Konto für Verbindungen
                vom lokalen Host eingerichtet. Es hat ebenso wie die
                root-Konten alle Berechtigungen. Das
                andere Konto ist für Verbindungen von beliebigen Hosts
                vorgesehen und hat alle Berechtigungen für die
                test-Datenbank und für alle
                Datenbanken, deren Name auf test
                beginnt.
              
                Unter Unix sind beide anonymen Konten für Verbindungen
                vom lokalen Host vorgesehen. Verbindungen vom lokalen
                Host müssen unter Angabe von
                localhost für das eine Konto bzw.
                des tatsächlichen Hostnamens oder der IP-Nummer für
                das andere Konto hergestellt werden. Diese Konten haben
                alle Berechtigungen für die Datenbank
                test und für alle Datenbanken, deren
                Name mit test_ beginnt.
              
Wie bereits angemerkt, hat keines der Vorgabekonten ein Passwort. Das bedeutet, dass Ihre MySQL-Installation nicht geschützt ist, bis Sie etwas Entsprechendes unternehmen:
Wenn Sie verhindern wollen, dass Clients sich ohne Angabe eines Passworts als anonyme Benutzer anmelden können, sollten Sie entweder für jedes anonyme Konto ein Passwort einrichten oder die Konten ganz entfernen.
            Allen MySQL-root-Konten sollten Sie
            Passwörter zuweisen.
          
        Die folgenden Angaben erläutern, wie Sie Passwörter für die
        vorgegebenen MySQL-Konten erstellen – erst für die anonymen
        Konten und dann für die root-Konten.
        Ersetzen Sie „ newpwd “
        in den Beispielen durch das Passwort, welches Sie verwenden
        wollen. Die Erläuterungen behandeln auch die Frage, wie Sie die
        anonymen Konten entfernen können, wenn Sie anonymen Zugriff
        überhaupt nicht gestatten wollen.
      
Sie sollten die Einstellung der Passwörter auf einen späteren Zeitpunkt verschieben, damit Sie sie nicht angeben müssen, wenn Sie weitere Konfigurations- oder Testschritte durchführen. Achten Sie allerdings darauf, sie einzurichten, bevor Sie Ihre Installation für Produktionszwecke einsetzen.
        Um Passwörter für anonyme Konten zu konfigurieren, stellen Sie
        als root eine Verbindung zum Server her und
        stellen das Passwort entweder mit SET
        PASSWORD ein oder führen eine
        UPDATE-Anweisung aus. In beiden Fällen
        müssen Sie das Passwort mit der
        PASSWORD()-Funktion verschlüsseln.
      
        SET PASSWORD verwenden Sie unter Windows wie
        folgt:
      
shell>mysql -u rootmysql>SET PASSWORD FOR ''@'localhost' = PASSWORD('mysql>newpwd');SET PASSWORD FOR ''@'%' = PASSWORD('newpwd');
        SET PASSWORD verwenden Sie unter Unix wie
        folgt:
      
shell>mysql -u rootmysql>SET PASSWORD FOR ''@'localhost' = PASSWORD('mysql>newpwd');SET PASSWORD FOR ''@'host_name' = PASSWORD('newpwd');
        In der zweiten SET PASSWORD-Anweisung
        ersetzen Sie host_name durch den
        Namen des Serverhosts. Es handelt sich dabei um den Namen, den
        Sie in der Spalte Host desjenigen
        root-Datensatzes in der Tabelle
        user angegeben haben, der nicht mit
        localhost verknüpft wird. Wenn Sie diesen
        Hostnamen nicht kennen, setzen Sie die folgende Anweisung vor
        der Verwendung von SET PASSWORD ab:
      
mysql> SELECT Host, User FROM mysql.user;
        Suchen Sie nach dem Datensatz, bei dem root
        in der Spalte User und etwas anderes als
        localhost in der Spalte
        Host steht. Verwenden Sie dann diesen
        Host-Wert in der zweiten SET
        PASSWORD-Anweisung.
      
        Die andere Möglichkeit, Passwörter für anonyme Konten
        zuzuweisen, ist die Verwendung von UPDATE zur
        direkten Modifizierung der Tabelle user.
        Stellen Sie als root eine Verbindung zum
        Server her und setzen Sie eine
        UPDATE-Anweisung ab, die in der Spalte
        Password der betreffenden Datensätze in der
        Tabelle user einen Wert hinzufügt. Der
        Vorgang ist bei Windows und Unix identisch. Die folgende
        UPDATE-Anweisung weist beiden anonymen Konten
        gleichzeitig ein Passwort zu:
      
shell>mysql -u rootmysql>UPDATE mysql.user SET Password = PASSWORD('->newpwd')WHERE User = '';mysql>FLUSH PRIVILEGES;
        Wenn Sie die Passwörter in der Tabelle user
        mit UPDATE direkt aktualisieren, müssen Sie
        den Server mit FLUSH PRIVILEGES anweisen, die
        Grant-Tabellen neu einzulesen. Andernfalls werden Ihre
        Änderungen erst umgesetzt, wenn Sie den Server neu starten.
      
Wenn Sie die anonymen Konten stattdessen ganz entfernen wollen, gehen Sie wie folgt vor:
shell>mysql -u rootmysql>DELETE FROM mysql.user WHERE User = '';mysql>FLUSH PRIVILEGES;
        Die DELETE-Anweisung gilt für Windows und
        Unix gleichermaßen. Wenn Sie unter Windows nur das anonyme
        Konto entfernen wollen, das die gleichen Berechtigungen wie
        root hat, geben Sie stattdessen Folgendes
        ein:
      
shell>mysql -u rootmysql>DELETE FROM mysql.user WHERE Host='localhost' AND User='';mysql>FLUSH PRIVILEGES;
Dieses Konto gewährt anonymen Zugriff, verfügt aber über Vollzugriff; insofern verbessern Sie die Sicherheit, wenn Sie es entfernen.
        Sie können den root-Konten Passwörter auf
        mehreren unterschiedlichen Wegen zuweisen. Im Folgenden wollen
        wir drei Methoden demonstrieren:
      
            Verwenden der SET PASSWORD-Anweisung
          
Verwenden des befehlszeilenbasierten Clientprogramms mysqladmin
            Verwenden der UPDATE-Anweisung
          
        Um Passwörter mit SET PASSWORD zuzuweisen,
        stellen Sie als root eine Verbindung zum
        Server her und setzen zwei SET
        PASSWORD-Anweisungen ab. Beachten Sie dabei, dass Sie
        das Passwort mit der PASSWORD()-Funktion
        verschlüsseln müssen.
      
Unter Windows geben Sie Folgendes ein:
shell>mysql -u rootmysql>SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mysql>newpwd');SET PASSWORD FOR 'root'@'%' = PASSWORD('newpwd');
Unter Unix geben Sie Folgendes ein:
shell>mysql -u rootmysql>SET PASSWORD FOR 'root'@'localhost' = PASSWORD('mysql>newpwd');SET PASSWORD FOR 'root'@'host_name' = PASSWORD('newpwd');
        In der zweiten SET PASSWORD-Anweisung
        ersetzen Sie host_name durch den
        Namen des Serverhosts. Dies ist derselbe Hostname, den Sie bei
        der Zuweisung der Passwörter für die anonymen Konten verwendet
        haben.
      
        Um für die root-Konten Passwörter mit
        mysqladmin zu konfigurieren, führen Sie
        folgende Befehle aus:
      
shell>mysqladmin -u root password "shell>newpwd"mysqladmin -u root -hhost_namepassword "newpwd"
        Diese Befehle gelten für Windows und Unix gleichermaßen. Im
        zweiten Befehl ersetzen Sie host_name
        durch den Namen des Serverhosts. Die doppelten
        Anführungszeichen, die das Passwort umgeben, sind nicht immer
        erforderlich; Sie sollten sie aber verwenden, wenn das Passwort
        Leerzeichen oder andere Zeichen enthält, die Ihr
        Befehls-Interpreter als Sonderzeichen interpretiert.
      
        Sie können auch mithilfe von UPDATE die
        Tabelle user direkt bearbeiten. Die folgende
        UPDATE-Anweisung weist beiden
        root-Konten gleichzeitig ein Passwort zu:
      
shell>mysql -u rootmysql>UPDATE mysql.user SET Password = PASSWORD('->newpwd')WHERE User = 'root';mysql>FLUSH PRIVILEGES;
        Die UPDATE-Anweisung gilt für Windows und
        Unix gleichermaßen.
      
Nachdem die Passwörter konfiguriert wurden, müssen Sie immer, wenn Sie eine Serververbindung herstellen, das Passwort angeben. Wollen Sie also etwa mysqladmin zum Herunterfahren des Servers verwenden, dann tun Sie das mit folgendem Befehl:
shell>mysqladmin -u root -p shutdownEnter password:(enter root password here)
        Hinweis: Wenn Sie Ihr
        root-Passwort nach der Konfiguration
        vergessen haben, finden Sie in
        Abschnitt A.4.1, „Wie ein vergessenes Kennwort zurückgesetzt wird“, Informationen
        dazu, wie Sie das Passwort zurücksetzen.
      
        Um weitere Konten einzurichten, können Sie die Anweisung
        GRANT verwenden. Informationen zur
        Vorgehensweise finden Sie in Abschnitt 5.9.2, „Hinzufügen neuer MySQL-Benutzer“.
      
Dies ist eine Übersetzung des MySQL-Referenzhandbuchs, das sich auf dev.mysql.com befindet. Das ursprüngliche Referenzhandbuch ist auf Englisch, und diese Übersetzung ist nicht notwendigerweise so aktuell wie die englische Ausgabe. Das vorliegende deutschsprachige Handbuch behandelt MySQL bis zur Version 5.1.

