MySQL-Verbindungsproblem: Zugriff für Benutzer 'root'@'localhost' verweigert
Der von Ihnen angegebene Code schlägt fehl, eine Verbindung zur Datenbank herzustellen und löst eine SQLException mit der Meldung „Zugriff verweigert für Benutzer ‚root‘@‘localhost‘ (mit Passwort: JA)“ aus. Dieses Problem weist darauf hin, dass der angegebene Benutzer nicht über die erforderlichen Berechtigungen zum Zugriff auf die Datenbank verfügt.
Ursachen:
Diese Ausnahme kann aus folgenden Gründen auftreten:
Lösung:
Um dieses Problem zu beheben, versuchen Sie die folgenden Schritte:
Erforderliche Berechtigungen erteilen: Führen Sie die folgende SQL-Anweisung aus, um dem Benutzer „root“ auf „localhost“ alle Berechtigungen zu erteilen:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '%password%' WITH GRANT OPTION;
Ersetzen Sie %password% durch das tatsächliche Passwort des „Root“-Benutzers.
Beispiel:
Sie haben Änderungen vorgenommen Ändern Sie Ihren Code leicht, um zu versuchen, während der Behandlung von Ausnahmen eine Datenbank zu erstellen:
<code class="java">public static void main(String[] args) throws ClassNotFoundException, ServletException, SQLException { try { Connection conn = (Connection) DriverManager.getConnection("jdbc:mysql://localhost/?user=root&password=rootpassword"); Statement s = (Statement) conn.createStatement(); int result = s.executeUpdate("CREATE DATABASE databasename"); } catch (Exception e) { e.printStackTrace(); } }</code>
Es tritt jedoch dieselbe Ausnahme auf. Stellen Sie in diesem Fall sicher, dass der „Root“-Benutzer über die erforderlichen Berechtigungen zum Erstellen einer Datenbank verfügt. Sie können dieses Privileg mit der folgenden SQL-Anweisung gewähren:
GRANT CREATE DATABASE ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
Durch Befolgen dieser Schritte sollten Sie in der Lage sein, eine erfolgreiche Verbindung zur Datenbank herzustellen und die Ausnahme „Zugriff verweigert“ zu vermeiden.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich die Fehlermeldung „Zugriff verweigert für Benutzer \'root\'@\'localhost\'\', wenn ich versuche, eine Verbindung zu meiner MySQL-Datenbank herzustellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!