Der Host 'xxx.xx.xxx.xxx' darf keine Verbindung zu diesem MySQL-Server herstellen

665

Das sollte ganz einfach sein, aber ich kann es nicht dazu bringen, für mein Leben zu arbeiten.
Ich versuche nur, eine Remoteverbindung mit meinem MySQL-Server herzustellen.

Verbinden als

mysql -u root -h localhost -p  

funktioniert gut, aber versuchen

mysql -u root -h 'any ip address here' -p

schlägt mit dem Fehler fehl

ERROR 1130 (00000): Host ''xxx.xx.xxx.xxx'' is not allowed to connect to this MySQL server

In der mysql.userTabelle gibt es genau den gleichen Eintrag für den Benutzer 'root' mit dem Host 'localhost' wie für einen anderen mit dem Host '%'.

Ich bin am Ende meines Verstandes und habe keine Ahnung, wie ich vorgehen soll. Ideen sind willkommen.

concept47
quelle
Kann sich aus Sicherheitsgründen in den meisten Fällen nicht als root anmelden.
AO_

Antworten:

813

Möglicherweise eine Sicherheitsmaßnahme. Sie können versuchen, ein neues Administratorkonto hinzuzufügen:

mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
    ->     WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
    ->     WITH GRANT OPTION;

Obwohl, wie Pascal und andere angemerkt haben, es keine gute Idee ist, einen Benutzer mit dieser Art von Zugriff für jede IP offen zu haben. Wenn Sie einen Administrator benötigen, verwenden Sie root und belassen Sie ihn auf localhost. Geben Sie für jede andere Aktion genau die Berechtigungen an, die Sie benötigen, und beschränken Sie die Zugänglichkeit des Benutzers, wie von Pascal unten vorgeschlagen.

Bearbeiten:

Aus den MySQL-FAQ:

Wenn Sie nicht herausfinden können, warum Ihnen der Zugriff verweigert wird, entfernen Sie alle Einträge mit Host-Werten, die Platzhalter enthalten (Einträge, die '%' oder '_' enthalten), aus der Benutzertabelle. Ein sehr häufiger Fehler besteht darin, einen neuen Eintrag mit Host = '%' und User = 'some_user' einzufügen. Dabei können Sie localhost angeben, um eine Verbindung von demselben Computer aus herzustellen. Der Grund, warum dies nicht funktioniert, ist, dass die Standardberechtigungen einen Eintrag mit Host = 'localhost' und User = '' enthalten. Da dieser Eintrag einen Hostwert 'localhost' hat, der spezifischer als '%' ist, wird er beim Herstellen einer Verbindung von localhost gegenüber dem neuen Eintrag bevorzugt verwendet! Das richtige Verfahren besteht darin, einen zweiten Eintrag mit Host = 'localhost' und User = 'some_user' einzufügen. oder um den Eintrag mit Host = 'localhost' und User = '' zu löschen. Denken Sie nach dem Löschen des Eintrags daran, eine FLUSH PRIVILEGES-Anweisung auszugeben, um die Grant-Tabellen neu zu laden. Siehe auch Abschnitt 5.4.4, „Zugriffskontrolle, Stufe 1: Verbindungsüberprüfung“.

Yannick Motton
quelle
17
Guter Fang Yannick, aber ich würde ihm nicht empfehlen, einem Nicht-Root-Benutzer alle Berechtigungen zu gewähren. Vielleicht ein reduzierter Satz?
Corey Ballou
3
Nun, das wäre in der Tat keine gute Idee, aber es ist genau das Gleiche, wenn 'root' von allen Hosts aus eine Verbindung herstellen kann, da es sich auf derselben Berechtigungsstufe befindet.
Yannick Motton
2
Ich denke du vermisst meinen Standpunkt Pascal. Der Punkt ist, dass der 'Root'-Benutzer diese Rechte bereits hat und er möchte, dass sich jede IP als dieser Benutzer authentifiziert. Wenn dies also wirklich das ist, was er will, ist das Standardbeispiel zum Erstellen eines neuen Administratorbenutzers (der genau die gleichen Rechte hat) eine Alternative zu dem, was er versucht.
Yannick Motton
2
Das stimmt, Yannick, ich habe zu schnell gelesen und werde meinen Kommentar entfernen. AFAIK, Berechtigungen funktionieren jedoch in MySQL einwandfrei. 1. Möglicherweise hat das OP die Grant-Tabellen manuell geändert und muss dann die Berechtigungen löschen. 2. Vielleicht hat er nicht die richtige Grant-Syntax für root verwendet. Das Hinzufügen eines weiteren Administratorbenutzers ist möglicherweise eine Problemumgehung, löst jedoch meiner Meinung nach das eigentliche Problem nicht.
Pascal Thivent
1
Ich war der Meinung, dass es keine richtige Lösung ist, allen Hosts Zugriff auf root zu gewähren. Stattdessen habe ich einen neuen Benutzer erstellt und einen reduzierten Satz von Berechtigungen gewährt. Der von mir verwendete Satz wird in MySQL Workbench als "DBManager" beschrieben. Ich habe auch nur den Zugriff von einer bestimmten Gruppe von Hosts in meinem lokalen Netzwerk zugelassen, insbesondere 192.168.0.%
Gustavo Guevara
270

Über phpMyAdmin oder die Eingabeaufforderung müssen Sie eine erstellen new MySQL Userund Berechtigungen wie Query promptfolgt zuweisen :

CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;

CREATE USER 'username'@'%' IDENTIFIED BY 'password';

GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;

FLUSH PRIVILEGES;

Sobald alle vier Abfragen abgeschlossen sind, sollte eine Verbindung hergestellt werden username / password

Aditya P Bhatt
quelle
5
Musste mysql neu starten, nachdem die obigen Schritte ausgeführt wurden, damit dies für mich funktioniert.
Mautstelle
Müssen Sie den Benutzernamen @ localhost erstellen? Ist es nicht genug, wenn Sie nur den Benutzernamen @% erstellen? Ich meine, wenn Sie nur den Benutzernamen @% erstellen, können Sie dann von localhost aus keine Verbindung zu diesem Benutzer herstellen?
Sorin Postelnicu
1
Ja, das Erstellen eines @localhostwürde Sinn machen, wenn die Berechtigungen irgendwie unterschiedlich wären, aber hier sind sie gleich und es wird wahrscheinlich verwirrender als alles andere (z. B. das Ändern von Passwörtern bei einem, ohne zu bemerken, dass das andere existiert, und dass Ihr Login möglicherweise dieses trifft ).
Bratchley
Als Anfänger hat es mir wirklich geholfen
Muhammad Nayab
1
danke es löst mein "SQLSTATE [HY000] [1130] Host 'DESKTOP-xxx.xx' darf keine Verbindung zu diesem MariaDB-Server herstellen" in containerisierter Laravel-Anwendung in Windows
Zulqarnain
117

Meine Fehlermeldung war ähnlich und lautete " Host XXX darf keine Verbindung zu diesem MySQL-Server herstellen ", obwohl ich root verwendet habe. So stellen Sie sicher, dass root über die richtigen Berechtigungen verfügt.

Mein Setup :

  • Ubuntu 14.04 LTS
  • MySQL v5.5.37

Lösung

  1. Öffnen Sie die Datei unter 'etc / mysql / my.cnf'.
  2. Prüfen Auf:

    • port (standardmäßig ist dies 'port = 3306')
    • Bindungsadresse (standardmäßig ist dies 'Bindungsadresse = 127.0.0.1'; wenn Sie für alle öffnen möchten, kommentieren Sie einfach diese Zeile aus. In meinem Beispiel würde ich sagen, dass der tatsächliche Server auf 10.1.1.7 ist)
  3. Greifen Sie jetzt auf die MySQL-Datenbank auf Ihrem tatsächlichen Server zu (sagen Sie, Ihre Remote-Adresse lautet 123.123.123.123 an Port 3306 als Benutzer 'root' und ich möchte die Berechtigungen für die Datenbank 'dataentry' ändern. Denken Sie daran, die IP-Adresse, den Port und den Datenbanknamen zu ändern zu Ihren Einstellungen)

    mysql -u root -p
    Enter password: <enter password>
    mysql>GRANT ALL ON *.* to root@'123.123.123.123' IDENTIFIED BY 'put-your-password';
    mysql>FLUSH PRIVILEGES;
    mysql>exit
  4. sudo service mysqld neu starten

  5. Sie sollten jetzt in der Lage sein, eine Remoteverbindung zu Ihrer Datenbank herzustellen. Zum Beispiel verwende ich MySQL Workbench und gebe 'Hostname: 10.1.1.7', 'Port: 3306', 'Benutzername: root' ein.
Wille
quelle
1
Sie können die use dataentryZeile überspringen (da die meisten Benutzer diese Datenbank nicht erstellen lassen).
Jedidja
3
Ich konnte dies tun, ohne den mysqlDienst am Ende neu zu starten
Ryan Tuck
5
FLUSH PRIVILEGESsollte es Ihnen ermöglichen, nicht neu starten zu müssen.
Adam B
Dies funktionierte für mich für MySQL 5.5 unter Windows 10 mit FLUSH PRIVILEGES, ohne den Dienst neu zu starten. Unter Windows sollten die Eigenschaften des Dienstes die für die Konfiguration verwendete Datei my.ini identifizieren (Eigenschaften | Allgemein | Pfad zur ausführbaren Datei)
FreeText
Ich ging davon aus, dass durch die Angabe von bind-address = "0.0.0.0" alle Schnittstellen abgehört werden und Remoteverbindungen funktionieren würden, aber ich habe mich geirrt. Ja, netstat hat gezeigt, dass MySQL 0.0.0.0 (alle Schnittstellen) abhört, aber ich habe den Fehler im Fragentitel erhalten. Nachdem ich die Bindungsadresszeile vollständig entfernt hatte, funktionierte sie. Seltsam.
Henno
71

Sie müssen dem Benutzer von jedem Hostnamen aus Zugriff gewähren.

So fügen Sie neue Berechtigungen von phpmyadmin hinzu

Gehe zu Berechtigungen> Neuen Benutzer hinzufügen

Geben Sie hier die Bildbeschreibung ein

Wählen Sie einen beliebigen Host für den gewünschten Benutzernamen

Geben Sie hier die Bildbeschreibung ein

HimalayanCoder
quelle
65

Führen Sie einfach die folgenden Schritte aus:

1a) Stellen Sie eine Verbindung zu MySQL her (über localhost).

mysql -uroot -p

1b) Wenn der myslq-Server in Kubernetes (K8s) ausgeführt wird und über einen NodePort zugegriffen wird

kubectl exec -it [pod-name] -- /bin/bash
mysql -uroot -p

2) Benutzer erstellen

CREATE USER 'user'@'%' IDENTIFIED BY 'password';

3) Berechtigungen erteilen

 GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' WITH GRANT OPTION;

4) Privilegien spülen

FLUSH PRIVILEGES;
minhas23
quelle
3
FEHLER 1045 (28000): Zugriff für Benutzer 'root' @ 'localhost' verweigert (mit passwoYES) Y
Gank
11
Sollte sein *.* ?
Sgarg
26

Die Nachricht *Host ''xxx.xx.xxx.xxx'' is not allowed to connect to this MySQL serverist eine Antwort vom MySQL-Server an den MySQL-Client. Beachten Sie, wie die IP-Adresse und nicht der Hostname zurückgegeben wird.

Wenn Sie versuchen, eine Verbindung herzustellen, mysql -h<hostname> -u<somebody> -pund diese Nachricht mit der IP-Adresse zurückgegeben wird, kann der MySQL-Server keine umgekehrte Suche auf dem Client durchführen. Dies ist wichtig, da auf diese Weise der MySQL-Client den Zuschüssen zugeordnet wird.

Stellen Sie sicher, dass Sie einen nslookup <mysqlclient>FROM vom MySQL-Server ausführen können. Wenn das nicht funktioniert, gibt es keinen Eintrag im DNS-Server. Alternativ können Sie einen Eintrag in die HOSTS-Datei des MySQL-Servers einfügen ( <ipaddress> <fullyqualifiedhostname> <hostname><- Die Reihenfolge hier kann von Bedeutung sein).

Ein Eintrag in der Hostdatei meines Servers, der eine umgekehrte Suche des MySQL-Clients ermöglicht, hat genau dieses Problem gelöst.

Dennis McLaughlin
quelle
1
"ist eine Antwort vom MySQL-Server an den MySQL-Client." Vielen Dank, ich habe mich gefragt, woher der Fehler kommt, von meinem Computer oder vom Server. Ich habe Fehler "FEHLER 1130 (HY000):" usw.
PJ Brunet
20

Einfacher Weg:

Grant All Privileges ON *.* to 'USER_NAME'@'%' Identified By 'YOUR_PASSWORD'; 

dann

FLUSH PRIVILEGES;

erledigt!

user5510975
quelle
Was bedeutet%?
Datenansichten
1
es ist wie alles. Sie können ein Beispiel geben: WHERE CustomerName LIKE 'a%'- Findet alle Werte, die mit "a" beginnen
user5510975
16

Wenn Sie die Grant-Tabellen manuell ändern (mit INSERT, UPDATE usw.), sollten Sie eine FLUSH PRIVILEGESAnweisung ausführen , um den Server anzuweisen, die Grant-Tabellen neu zu laden.

PS: Ich würde nicht empfehlen, einem Host die Verbindung für einen Benutzer zu erlauben (insbesondere nicht die rootVerwendung). Wenn Sie MySQL für eine Client / Server-Anwendung verwenden, bevorzugen Sie eine Subnetzadresse. Wenn Sie MySQL mit einem Webserver oder Anwendungsserver verwenden, verwenden Sie bestimmte IP-Adressen.

Pascal Thivent
quelle
4

Verwenden Sie einfach die vom GUI-Tool (SQLyog) von MySql bereitgestellte Schnittstelle:

Klicken Sie auf Benutzermanager: Geben Sie hier die Bildbeschreibung ein

Wenn Sie nun für einen anderen Remote-PC Zugriff gewähren möchten, stellen Sie einfach sicher, dass der Host-Feldwert wie im folgenden Bild% ist (dies ist der Platzhalter).

Geben Sie hier die Bildbeschreibung ein

BabaNew
quelle
4

Die meisten Antworten hier zeigen, wie Sie Benutzer mit zwei Hostwerten erstellen: einem für localhostund einem für %.

Bitte beachten Sie, dass Sie dies mit Ausnahme eines integrierten localhost-Benutzers wie root nicht tun müssen. Wenn Sie einfach einen neuen Benutzer erstellen möchten, der sich von überall aus anmelden kann, können Sie verwenden

CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
GRANT <whatever privileges are appropriate> ON <relevant tables> TO myuser;

und es wird gut funktionieren. (Wie andere bereits erwähnt haben, ist es eine schreckliche Idee, einem Benutzer aus einer beliebigen Domäne Administratorrechte zu gewähren.)

Erica Kane
quelle
3

Ein einfacher Weg ist, sich bei phpmyadmin mit dem Root-Konto anzumelden, dort zur MySQL-Datenbank zu gelangen und die Benutzertabelle auszuwählen, dort das Root-Konto zu bearbeiten und im Host-Feld% Joker hinzuzufügen. und dann durch ssh flush Privilegien

 FLUSH PRIVILEGES;
user889030
quelle
Dies hat mir dabei geholfen: ALLE PRIVILEGIEN AUF GEWÄHRLEISTEN . TO 'root' @ '%' WITH GRANT OPTION;
Lanklaas
2

Wenn es sich um eine kürzlich durchgeführte MySQL-Installation handelt, versuchen Sie einfach, diesen Befehl auszuführen, bevor Sie etwas anderes ändern, und versuchen Sie es dann erneut:

flush privileges;

Dies allein behebt das Problem für mich unter Ubuntu 16.04, MySQL 5.7.20. YMMV.

Alex R.
quelle
2

Finden Sie einfach einen besseren Weg, dies in Ihrem Hosting-Control-Panel zu tun (ich verwende DirectAdmin hier).

Gehen Sie einfach zur Zielserver-Datenbank in Ihrem Control Panel, in meinem Fall: MySQL-Verwaltung -> wählen Sie Ihre Datenbank aus -> Sie finden: "Access Hosts", fügen Sie einfach Ihren Remote-Host hier hinzu und es funktioniert jetzt! Geben Sie hier die Bildbeschreibung ein

Ich denke, es gibt eine ähnliche Option für andere C.panels wie plesk usw.

Ich hoffe es war auch für dich hilfreich.

Eran Levi
quelle
2

Nun, nichts von der obigen Antwort hat bei mir funktioniert. Nach vielen Recherchen habe ich eine Lösung gefunden. Obwohl ich zu spät komme, kann dies anderen in Zukunft helfen.

Melden Sie sich von einem Terminal aus bei Ihrem SQL Server an

 mysql -u root -p
 -- root password
GRANT ALL ON *.* to root@'XX.XXX.XXX.XX' IDENTIFIED BY 'password';

Dies sollte das Berechtigungsproblem lösen.

Vor dem Lösen von Fehlern

Nach dem Lösen des Problems

Viel Spaß beim Codieren !!

Pratap Sharma
quelle
1

Nun, was Sie tun können, ist einfach die Datei mysql.cfg zu öffnen und Sie müssen die Bindungsadresse in diese ändern

Bindungsadresse = 127.0.0.1

und dann MySQL neu starten und Sie können diesen Server mit diesem verbinden.

Schauen Sie, Sie können eine Idee davon haben.

das ist echtes sol

Kishan Bheemajiyani
quelle
3
Dies hängt zusammen, ist aber nicht das gleiche Problem. Der ursprünglich empfangene Fehler zeigt an, dass der Client erfolgreich eine Verbindung zum MySQL-Server herstellt, die Authentifizierung jedoch fehlschlägt. Wenn die Bindungsadresse auf 127.0.0.1 festgelegt wurde, wird stattdessen der Fehler "Verbindung verweigert" angezeigt.
Axon
Aber dies ist eine Adresse, die es dem gesamten Host ermöglicht, eine Verbindung zum Server herzustellen.
Kishan Bheemajiyani
Aber dem Benutzer die gesamte Berechtigung zu erteilen, ist für diesen Bcoz keine kluge Option, wenn Sie einen Clientbenutzer haben und nicht berechtigt sind, einen Benutzer mit allen Berechtigungen zu erstellen. Was wäre dann die Lösung?
Kishan Bheemajiyani
1

Wenn Sie zufällig unter Windows ausgeführt werden; Eine einfache Lösung besteht darin, den Konfigurationsassistenten für MySQL-Serverinstanzen auszuführen. Es befindet sich in Ihrer MYSQL-Gruppe im Startmenü. Klicken Sie im vorletzten Bildschirm auf das Feld "Root-Zugriff von Remotecomputern zulassen".

Jan.
quelle
1

Wenn Sie WAMP Server + Windows 10 haben und es für die Entwicklung verwenden, klicken Sie mit der rechten Maustaste auf das Wamp-Symbol => Wamp Settings=>Check Allow Virtual Hosts other than 127* Geben Sie hier die Bildbeschreibung ein

Adrian
quelle
0

Ich stand auch vor dem gleichen Problem. Ich habe es in 2 Minuten für mich gelöst. Ich habe gerade eine IP-Liste über cpanel erstellt

Angenommen, Sie versuchen, die Datenbank von Server B von Server A zu verbinden. Gehen Sie zu Server B Cpanel-> Remote MySQL-> Geben Sie die IP-Adresse von Server A ein und fertig.

user3437729
quelle
0

Diese Antwort könnte jemandem helfen ...

All diese Antworten haben nicht geholfen, dann wurde mir klar, dass ich vergessen habe, eine wichtige Sache zu überprüfen. Der Port :)

Ich habe MySQL in einem Docker-Container ausgeführt, der auf einem anderen Port ausgeführt wird. Ich habe auf meinen Host-Computer an Port 3306 gezeigt, auf dem ein MySQL-Server ausgeführt wird. Mein Container macht den Server auf Port 33060 verfügbar. Die ganze Zeit habe ich nach dem falschen Server gesucht! doh!

Srini
quelle
0
CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;

Dieser Fehler liegt daran, dass kein Kennwort für das Stammverzeichnis vorhanden ist. Dies ist möglicherweise bei Ihnen aufgetreten, als Sie versucht haben, eine Verbindung von außen herzustellen.

Abd Abughazaleh
quelle
0

CPANEL-Lösung

Gehen Sie zu Cpanel und suchen Sie nach Remote MySQL. Fügen Sie die IP in das Eingabefeld ein:

Host (% Platzhalter ist erlaubt)

Kommentar, um sich zu merken, welche IP das ist. Das war es für mich.

user2060451
quelle
0

Dies funktioniert für jede zukünftige Remote-MySQL-Verbindung!

    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Navigieren Sie zu der Zeile, die mit der Direktive für die Bindungsadresse beginnt. Es sollte so aussehen:

    bind-address            = 0.0.0.0

Melden Sie sich bei Ihrem MySQL als Root-Terminal an

    mysql -u root -p
    -- root password

    CREATE USER 'username'@'localhost' IDENTIFIED BY 'password';

    GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;

    CREATE USER 'username'@'%' IDENTIFIED BY 'password';

    GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' WITH GRANT OPTION;

    FLUSH PRIVILEGES;

    EXIT;

Gewähren Sie diesem Computer die ausschließliche Berechtigung, mit dem folgenden Befehl eine Remoteverbindung zur Datenbank herzustellen.

    sudo ufw allow from remote_IP_address to any port 3306
Soufiane ELAMMARI
quelle
-1

Bei der Möglichkeit, dass jemand, der mit diesem Problem konfrontiert ist, es in SQLyog auftritt, ist Folgendes passiert:

Ich hatte mich mit der entfernten Datenbank (aus SQLyog heraus) verbunden und einige Stunden gearbeitet. Danach verließ ich das System für einige Minuten und kam dann zurück, um meine Arbeit fortzusetzen - FEHLER 1130 ! Nichts, was ich versuchte, funktionierte; Ein Neustart von SQLyog hat das Problem nicht behoben. Dann habe ich das System neu gestartet - es hat immer noch nicht funktioniert.

Also habe ich versucht, eine Verbindung vom Terminal aus herzustellen - es hat funktioniert. Dann versuchte es erneut auf SQLyog ... und es funktionierte. Ich kann es nicht anders erklären als "zufällige Computer-Skurrilität", aber ich denke, es könnte jemandem helfen.

Emmanuel
quelle
-1

Wenn Sie versuchen, eine MySQL-Abfrage auszuführen, ohne die Verbindungszeichenfolge zu definieren, wird dieser Fehler angezeigt.

Wahrscheinlich haben Sie vergessen, die Verbindungszeichenfolge vor der Ausführung zu definieren. Hast du das überprüft? (entschuldige mein schlechtes Englisch)

Ali CAKIL
quelle
-1

Problem: root @ localhost kann keine Verbindung zu einer Neuinstallation von mysql-community-server unter openSUSE 42.2-1.150.x86_64 herstellen. MySQL lehnt Verbindungen ab - Zeitraum.

Lösung:

$ ls -l /var/lib/mysql/mysql/user.*
-rw-rw---- 1 mysql mysql     0 Apr 29 19:44 /var/lib/mysql/mysql/user.MYD
-rw-rw---- 1 mysql mysql  1024 Apr 29 19:44 /var/lib/mysql/mysql/user.MYI
-rw-rw---- 1 mysql mysql 10684 Apr 29 19:44 /var/lib/mysql/mysql/user.frm

Datei user.MYD hat die Größe 0 (wirklich ?!). Ich habe alle 3 Dateien von einem anderen funktionierenden System kopiert.

$ /usr/sbin/rcmysql stop
$ cd /var/lib/mysql/mysql/
$ scp root@othersytem:/var/lib/mysql/mysql/user.* ./
$ /usr/sbin/rcmysql start
$ cd -
$ mysql -u root -p

Ich konnte mich anmelden. Dann ging es nur noch darum, alle Schema-Berechtigungen erneut anzuwenden. Wenn Sie IPv6 deaktiviert haben, aktivieren Sie es vorübergehend erneut, damit auch das root @ :: 1-Konto funktioniert.

Alex D.
quelle
-1

Dies funktioniert für DirectAdmin ;

  1. Geh zu deinem DirectAdmin.
  2. Geh zu deinem MySQL Management.
  3. Wählen Sie Ihre database.
  4. Unter Ihrer Accesse HostRegisterkarte befindet sich ein Feld. Sie sollten dieses Feld mit ausfüllen xxx.xx.xxx.xx.
  5. Klicken Sie auf Add Host.

Fertig. Jetzt können Sie mit Ihrem your_database_username& auf diese Datenbank zugreifen your_database_password.
So einfach!

اسماعیل زارع
quelle
-3

Alle Antworten hier haben in meinem Fall nicht funktioniert, daher bin ich Gast, dies könnte anderen Benutzern in Zukunft helfen. Dies kann auch ein Problem in unserem Code sein, nicht nur in MySQL allein.

Wenn Sie verwenden VB.NET

Anstelle dieses Codes:

 Dim server As String = My.Settings.DB_Server
 Dim username As String = My.Settings.DB_Username
 Dim password As String = My.Settings.DB_Password
 Dim database As String = My.Settings.DB_Database

 MysqlConn.ConnectionString = "server=" & server & ";" _
 & "user id=" & username & ";" _
 & "password=" & password & ";" _
 & "database=" & database

 MysqlConn = New MySqlConnection()

Sie müssen in MysqlConn = New MySqlConnection()die erste Zeile wechseln . So wäre es also

 MysqlConn = New MySqlConnection()

 Dim server As String = My.Settings.DB_Server
 Dim username As String = My.Settings.DB_Username
 Dim password As String = My.Settings.DB_Password
 Dim database As String = My.Settings.DB_Database

 MysqlConn.ConnectionString = "server=" & server & ";" _
 & "user id=" & username & ";" _
 & "password=" & password & ";" _
 & "database=" & database
Cary Bondoc
quelle