Client does not support authentication protocol Drucken E-Mail

MySQL 5.1 verwendet ein Authentifizierungsprotokoll, das auf einem Passwort-Hash-Algorithmus basiert, der mit älteren Clients (vor Version 4.1) inkompatibel ist. Wenn Sie den Server von 4.1 auf die neue Version aufrüsten, können Verbindungsversuche mit einem älteren Client folgenden Fehler verursachen:

shell> mysql
Client does not support authentication protocol requested
by Server; consider upgrading MySQL client

Für dieses Problem gibt es folgende Lösungsansätze:

  • Sie aktualisieren alle Clientprogramme, sodass sie die Clientbibliothek von 4.1.1 oder eine neuere Version benutzen.
  • Wenn Sie mit einem Clientprogramm einer Version vor 4.1 auf den Server zugreifen, verwenden Sie ein Konto, das noch ein Passwort aus der Zeit von vor 4.1 hat.
  • Stellen Sie das Passwort für Benutzer, die ein ?lteres Clientprogramm als 4.1 verwenden, im Stil der Version von vor 4.1 ein. Dies können Sie mit der SET PASSWORD-Anweisung oder der OLD_PASSWORD()-Funktion tun:
-> 'some_user'@'some_host' = OLD_PASSWORD('newpwd');

Alternativ können Sie auch UPDATE und FLUSH PRIVILEGES einsetzen:

mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('newpwd')
-> WHERE Host = 'some_host' AND User = 'some_user';
mysql> FLUSH PRIVILEGES;

In diesen Beispielen müssen Sie "newpwd" durch das neue, von Ihnen gewählte Passwort ersetzen. Da MySQL Ihnen das Originalpasswort nicht verraten kann, müssen Sie ein neues aussuchen.

  • Veranlassen Sie den Server, den älteren Passwort-Hashing-Algorithmus zu verwenden:

1. Starten Sie mysqld mit der Option --old-passwords. 2. Weisen Sie jedem Konto, dessen Passwort auf das längere 4.1-Fomat umgestellt wurde, ein Passwort im alten Format zu. Welche Konten das sind, verrät Ihnen folgende Anfrage:

   mysql> SELECT Host, User, Password FROM mysql.user
-> WHERE LENGTH(Password) > 16;

Für jeden Konteneintrag, den der Server zeigt, nehmen Sie die Werte Host und User und weisen mit der Funktion OLD_PASSWORD() und SET PASSWORD oder UPDATE ein neues Passwort zu, wie oben beschrieben.

Hinweis: In älteren PHP-Versionen unterstützt die mysql-Erweiterung nicht das Authentifizierungsprotokoll von MySQL 4.1.1 und h?her. Das gilt unabhängig von der verwendeten PHP-Version. Wenn Sie die mysql-Erweiterung mit MySQL 4.1 oder höher nutzen möchten, müssen Sie unter Umständen einen der oben beschriebenen Wege einschlagen, um MySQL für ältere Clients zu konfigurieren. Die mysqli-Erweiterung (die in PHP 5 für "MySQL, Improved" steht) ist kompatibel mit dem verbesserten Passwort-Hashing von MySQL 4.1 und höher. Hier ist keine spezielle Konfiguration für MySQL erforderlich, um diese MySQL-Clientbibliothek nutzen zu können. Weitere Informationen über die mysqli-Erweiterung finden Sie unter http://php.net/mysqli.

Unter Umst?nden kann auch die ältere mysql-Erweiterung mit der neuen MySQL-Clientbibliothek kompiliert werden. Dieser Vorgang ist jedoch nicht Thema unseres Referenzhandbuchs. Weitere Informationen finden Sie in der PHP-Dokumentation. Eventuell können Sie in solchen Fragen auch im MySQL with PHP forum Hilfe finden.

Hintergrundinformationen über Passwort-Hashing und Authentifizierung gibt es unter Abschnitt 5.8.9, "Kennwort-Hashing ab MySQL 4.1".

 

Weblink



 
© 2012 CiKa Software Ltd. & Co. KG
Fan werden auf Facebook Folgen Sie uns auf Twitter Folgen Sie unserem RSS Feed