Datenbankzugriff für „root“-Benutzer in Ubuntu 16.04 verweigert
Beim Zugriff auf eine Datenbank über einen Webserver in Ubuntu 16.04 kann Folgendes auftreten: der Fehler „SQLSTATE[HY000] [1698] Zugriff verweigert für Benutzer ‚root‘@‘localhost‘“. Dieses Problem tritt trotz der Erstellung neuer Benutzer mit allen Berechtigungen auf.
Root-Benutzereinschränkungen in MySQL 5.7
Die Hauptursache für diesen Fehler liegt in den in MySQL 5.7 eingeführten Änderungen. Dadurch wird die Verwendung des Benutzers „root“ ohne Sudo-Berechtigungen eingeschränkt. In früheren Versionen konnten Benutzer mit dem Befehl „mysql -u root“ als „root“ auf MySQL zugreifen, ohne ihre Berechtigungen zu erhöhen. In MySQL 5.7 ist dieser Ansatz jedoch nicht mehr möglich.
Problemumgehung
Um dieses Problem zu beheben, müssen Sie einen neuen Benutzer mit den erforderlichen Berechtigungen erstellen und verwenden diesen Benutzer anstelle von „root“, wenn Sie Datenbankverbindungen von Ihrer PHP-Anwendung oder anderen Nicht-Befehlszeilen-Tools aus herstellen.
PHP-Code
Ersetzen Sie in Ihrem PHP-Code das Benutzername und Passwort mit den Anmeldeinformationen des neu erstellten Benutzers:
<code class="php">protected $name = 'new_user'; protected $pass = 'new_password';</code>
Root-Zugriff über die Befehlszeile
Während Sie den „Root“-Benutzer nicht direkt verwenden können Bei GUI- oder Nicht-Befehlszeilenanwendungen können Sie weiterhin über die Befehlszeile mit sudo als „root“ auf MySQL zugreifen:
sudo mysql -u root
Bedenken Sie, dass dieser Ansatz Ihre Berechtigungen erweitert und nur bei Bedarf verwendet werden sollte. Aus Sicherheitsgründen wird empfohlen, einen dedizierten Benutzer für die Datenbankverwaltung zu erstellen und diesen Benutzer anstelle von „root“ zu verwenden.
Das obige ist der detaillierte Inhalt vonWarum kann ich in Ubuntu 16.04 keine Verbindung zu MySQL als „root' herstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!