Passwörter können mit mysqladmin über die Befehlszeile zugewiesen werden:
shell> mysqladmin -u user_name -h host_name password "newpwd"
        Der Befehl setzt das Passwort des Kontos zurück, bei dessen
        Datensatz in der Tabelle user eine
        Übereinstimmung mit user_name in der
        Spalte User und eine Übereinstimmung des
        Clienthosts, von dem aus Sie die Verbindung
        herstellen, in der Spalte Host
        vorliegt.
      
        Eine weitere Möglichkeit, einem Konto ein Passwort zuzuweisen,
        besteht im Absetzen einer SET
        PASSWORD-Anweisung:
      
mysql> SET PASSWORD FOR 'jeffrey'@'%' = PASSWORD('biscuit');
        Nur Benutzer wie root, die die
        mysql-Datenbank aktualisieren dürfen,
        können die Passwörter anderer Benutzer ändern. Sofern Sie
        nicht als anonymer Benutzer verbunden sind, können Sie Ihr
        eigenes Passwort durch Weglassen der
        FOR-Klausel ändern:
      
mysql> SET PASSWORD = PASSWORD('biscuit');
        Sie können auch eine GRANT USAGE-Anweisung
        auf der globalen Ebene (ON *.*) verwenden, um
        einem Konto ein Passwort zuzuweisen, ohne die aktuellen
        Berechtigungen dieses Kontos zu beeinträchtigen:
      
mysql> GRANT USAGE ON *.* TO 'jeffrey'@'%' IDENTIFIED BY 'biscuit';
        Zwar ist die Zuweisung von Passwörtern unter Verwendung einer
        der zuvor beschriebenen Methoden generell vorzuziehen, aber Sie
        können die Tabelle user auch direkt ändern:
      
            Um bei Erstellung eines neuen Kontos ein Passwort
            zuzuweisen, setzen Sie einen Wert in die Spalte
            Password:
          
shell>mysql -u root mysqlmysql>INSERT INTO user (Host,User,Password)->VALUES('%','jeffrey',PASSWORD('biscuit'));mysql>FLUSH PRIVILEGES;
            Wollen Sie das Passwort eines vorhandenen Kontos ändern,
            dann weisen Sie mit UPDATE den
            Password-Spaltenwert zu:
          
shell>mysql -u root mysqlmysql>UPDATE user SET Password = PASSWORD('bagel')->WHERE Host = '%' AND User = 'francis';mysql>FLUSH PRIVILEGES;
        Wenn Sie einem Konto mit SET PASSWORD,
        INSERT oder UPDATE ein
        nichtleeres Passwort zuweisen, müssen Sie die Funktion
        PASSWORD() zur Verschlüsselung verwenden.
        PASSWORD() ist erforderlich, weil die Tabelle
        user Passwörter nicht als Klartext, sondern
        in verschlüsselter Form speichert. Wenn Sie dies vergessen,
        werden Sie Passwörter wahrscheinlich so einstellen:
      
shell>mysql -u root mysqlmysql>INSERT INTO user (Host,User,Password)->VALUES('%','jeffrey','biscuit');mysql>FLUSH PRIVILEGES;
        Die Folge ist, dass der literale Wert
        'biscuit' und nicht der verschlüsselte Wert
        als Passwort in der Tabelle user gespeichert
        wird. Wenn jeffrey dann unter Angabe dieses
        Passworts eine Verbindung zum Server herzustellen versucht, wird
        der Wert verschlüsselt und dann mit dem in der Tabelle
        user gespeicherten Wert verglichen. Dieser
        gespeicherte Wert ist jedoch der literale String
        'biscuit' – der Vergleich schlägt fehl,
        und der Server weist die Verbindungsanfrage ab:
      
shell> mysql -u jeffrey -pbiscuit test
Access denied
        Bei der Zuweisung von Passwörtern mit der Anweisung
        GRANT ... IDENTIFIED BY oder dem Befehl
        mysqladmin password wird die Verschlüsselung
        des Passworts automatisch erledigt. In diesen Fällen ist die
        Verwendung der Funktion PASSWORD() nicht
        erforderlich.
      
        Hinweis: Die
        PASSWORD()-Verschlüsselung unterscheidet
        sich von der Unix-Passwortverschlüsselung. Siehe auch
        Abschnitt 5.9.1, „MySQL-Benutzernamen und -Kennwörter“.
      
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.

