it-swarm.com.de

FEHLER 1130 (HY000): Host '' darf keine Verbindung zu diesem MySQL-Server herstellen

Warum kann ich mich nicht mit MySQL verbinden?

mysql -u root -ptest101 -h xxx.xxx.xxx.xxx
ERROR 1130 (HY000): Host 'xxx.xxx.xxx.xxx' is not allowed to connect to this MySQL server

In my.cnf habe ich folgendes

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address        = 0.0.0.0

Ich lief auch die unten ...

'UPDATE mysql.user SET Password = PASSWORD('test101') WHERE User = 'root';
FLUSH PRIVILEGES;

Ich kann auf dem Host-Rechner mit mysql -u root -ptest101 zugreifen, aber nicht mit mysql -u root -ptest101 -h xxx.xxx.xxx.xxx

Wow ... warum passiert das? Ich bin n ubuntj 12.04

mysql> SELECT Host FROM mysql.user WHERE User = 'root';
+---------------------------------------------+
| Host                                        |
+---------------------------------------------+
| %                                           |
| 127.0.0.1                                   |
| ::1                                         | |
| localhost                                   |
+---------------------------------------------+
5 rows in set (0.00 sec)
116
Tampa

Ihr root Konto, und diese Anweisung gilt für jedes Konto, wurde möglicherweise nur mit localhost-Zugriff hinzugefügt (was empfohlen wird).

Sie können dies überprüfen mit:

SELECT Host FROM mysql.user WHERE User = 'root';

Wenn Sie nur Ergebnisse mit localhost und 127.0.0.1 Sehen, können Sie keine Verbindung von einer externen Quelle herstellen. Wenn Sie andere IP-Adressen sehen, aber nicht die, von der aus Sie eine Verbindung herstellen, ist dies auch ein Hinweis.

Sie müssen die IP-Adresse jedes Systems hinzufügen, auf das Sie Zugriff gewähren möchten, und anschließend Berechtigungen erteilen:

CREATE USER 'root'@'ip_address' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'ip_address';

Wenn Sie % Sehen, gibt es insgesamt ein anderes Problem, nämlich "jede entfernte Quelle". Wenn Sie jedoch möchten, dass sich alle Systeme über root verbinden, verwenden Sie den Platzhalter %, Um den Zugriff zu gewähren:

CREATE USER 'root'@'%' IDENTIFIED BY 'some_pass';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';

Laden Sie abschließend die Berechtigungen neu, und Sie sollten über Remotezugriff verfügen können:

FLUSH PRIVILEGES;
254
newfurniturey

Die folgenden zwei Schritte haben für mich einwandfrei funktioniert:

  1. Kommentieren Sie die Bindungsadresse aus der Datei /etc/mysql/my.cnf:

    #bind-address = 127.0.0.1

  2. Führen Sie folgende Abfrage in phpMyAdmin aus:

    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'; FLUSH PRIVILEGES;

17
Ravi Garg
$mysql -u root --Host=127.0.0.1 -p

mysql>use mysql

mysql>GRANT ALL ON *.* to [email protected]'%' IDENTIFIED BY '[email protected]';

mysql>FLUSH PRIVILEGES;

mysql> SELECT Host FROM mysql.user WHERE User = 'root';

mysql> CREATE USER 'name' @ '%' IDENTIFIED BY 'passWord'; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

mysql> GRANT ALL PRIVILEGES ON . TO 'name' @ '%'; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

mysql> FLUSH PRIVILEGES; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

mySQL>

  1. Stellen Sie sicher, dass Sie Ihren Namen und% richtig herum haben
  2. Stellen Sie sicher, dass Sie Ihren Port 3306 zu einer eventuell von Ihnen ausgeführten Firewall hinzugefügt haben (dies gibt jedoch eine andere Fehlermeldung aus).

hoffe das hilft jemandem ...

2
HappyCoder