Heim > Java > javaLernprogramm > Hauptteil

Warum erhalte ich die Fehlermeldung „Zugriff verweigert für Benutzer \'root\'@\'localhost\'\', wenn ich versuche, eine Verbindung zu meiner MySQL-Datenbank herzustellen?

Linda Hamilton
Freigeben: 2024-10-26 00:27:28
Original
1030 Leute haben es durchsucht

Why am I getting

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:

  • Falscher Benutzername oder Passwort
  • Unzureichende Berechtigungen für den Benutzer
  • Firewall blockiert den Zugriff auf den Datenbankserver

Lösung:

Um dieses Problem zu beheben, versuchen Sie die folgenden Schritte:

  1. Überprüfen Sie Ihren Benutzernamen und Ihr Passwort: Stellen Sie sicher, dass der Benutzername und das Passwort für DriverManager.getConnection angegeben sind () sind korrekt.
  2. 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;
    Nach dem Login kopieren

    Ersetzen Sie %password% durch das tatsächliche Passwort des „Root“-Benutzers.

  3. Firewall-Einstellungen:Überprüfen Sie, ob die Firewall auf Ihrem System den Zugriff auf den Datenbankserver blockiert . Wenn ja, konfigurieren Sie die Firewall so, dass Verbindungen auf dem Port zugelassen werden, den der Datenbankserver verwendet (normalerweise Port 3306).

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&amp;password=rootpassword");
        Statement s = (Statement) conn.createStatement();
        int result = s.executeUpdate("CREATE DATABASE databasename");
    } catch (Exception e) {
        e.printStackTrace();
    }
}</code>
Nach dem Login kopieren

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;
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage