Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Fehler „Zugriff verweigert“ von Java auf MySQL

Die wahrscheinlichste Erklärung ist, dass der Benutzer nicht in MySQL definiert ist.

Beachten Sie, dass in MySQL ein Benutzer SOWOHL durch den Hostnamen (oder die IP-Adresse), von dem aus der Benutzer eine Verbindung herstellt, als auch durch den Benutzernamen identifiziert wird. (HINWEIS:Ein '%' kann als Platzhalter für den Hostnamen verwendet werden, um eine Verbindung von jedem Host zuzulassen, aber MySQL sucht zuerst nach einer genauen Übereinstimmung und greift dann auf den Platzhalter zurück, wenn keine Übereinstimmung gefunden wird.)

SELECT u.Host,
     , u.User
     , u.Password
  FROM mysql.user u
 WHERE u.User = 'buiud458_raklar'

Wir würden erwarten, dass es dort eine Zeile mit dem Host-Wert „d24-36-33-148.home1.cgocable.net“ gibt ' oder eine Zeile mit einem Hostwert-Platzhalter von '% '.

Mit der Funktion PASSWORD...

können Sie das von Ihnen verwendete Passwort mit dem in der Tabelle gespeicherten Wert vergleichen
SELECT PASSWORD('mysecret') 

Jeder [email protected] können Privilegien für einzelne Datenbanken gewährt werden.

SELECT d.Host
     , d.User
     , d.Db
  FROM mysql.db d
 WHERE d.User = 'buiud458_raklar'

Der einfachste Weg, einen Benutzer mit Privilegien für eine Datenbank einzurichten:

CREATE USER 'buiud458_raklar'@'d24-36-33-148.home1.cgocable.net' IDENTIFIED BY 'secret' ;
GRANT ALL PRIVILEGES ON mydb.* TO  'buiud458_raklar'@'d24-36-33-148.home1.cgocable.net' ;

(HINWEIS:Das Gewähren aller Privilegien an einen Benutzer verstößt normalerweise gegen das Best-Practice-Prinzip der „geringsten Privilegien“. Dieser Benutzer benötigt möglicherweise nicht alle Privilegien, z. B. das DROP TABLE-Privileg. Unnötiges Gewähren von Privilegien ist ein zusätzliches Sicherheitsrisiko.)

http://dev.mysql.com/doc/refman /5.5/en/adding-users.html