Zugriff für MySQL-Benutzer „root“ unter Ubuntu 16.04 verweigert
Beim Versuch, von einem Webserver unter Ubuntu 16.04 eine Verbindung zu einer MySQL-Datenbank herzustellen , können Benutzer auf den folgenden Fehler stoßen:
SQLSTATE[HY000] [1698] Access denied for user 'root'@'localhost'
Dieses Problem tritt auf, weil sich in MySQL 5.7 der Standardauthentifizierungsmechanismus geändert hat und auf den Root-Benutzer nicht mehr ohne erhöhte Berechtigungen zugegriffen werden kann.
Lösung:
Um diesen Fehler zu beheben, müssen Benutzer einen neuen MySQL-Benutzer mit den erforderlichen Berechtigungen erstellen, anstatt den Root-Benutzer zu verwenden. Die folgenden Schritte beschreiben den Prozess:
sudo mysql -u root -p
Geben Sie Ihr Root-Passwort ein, wenn Sie dazu aufgefordert werden.
CREATE USER new_user@localhost IDENTIFIED BY 'new_password';
Ersetzen Sie „new_user“ durch den gewünschten Benutzernamen und „new_password“ durch ein sicheres Passwort.
GRANT ALL PRIVILEGES ON *.* TO new_user@localhost;
Dies gewährt dem neuen Benutzer vollen Zugriff auf alle Datenbanken und Tabellen.
Ändern Sie den PHP-Code in der bereitgestellten Frage, um die neu erstellten Benutzeranmeldeinformationen zu verwenden, und ersetzen Sie „root“ durch „new_user“ und „root“ durch „new_password“.
FLUSH PRIVILEGES;
Dadurch wird die Berechtigungstabelle mit den vorgenommenen Änderungen aktualisiert.
EXIT;
Durch Befolgen dieser Schritte können Benutzer von einem Webserver unter Ubuntu 16.04 aus eine Verbindung zu ihrer MySQL-Datenbank herstellen, ohne dass der Fehler „Zugriff verweigert“ auftritt.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich unter Ubuntu 16.04 die Meldung „Zugriff verweigert“ für den MySQL-Benutzer „root“?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!