Dieser Artikel stellt Ihnen hauptsächlich die Lösung für das Problem vor, dass andere IPs nicht auf die MySQL-Datenbank zugreifen können. Der Artikel stellt es ausführlich anhand von Beispielcode vor. Es hat einen gewissen Referenz- und Lernwert für alle, die lernen oder arbeiten Wer es braucht, kann folgen. Lasst uns gemeinsam mit dem Herausgeber lernen.
Vorwort
Es ist immer noch das zuvor erwähnte Projekt. Die Umgebung ist derzeit bereit. Während der Projektvorbereitungs- und Überprüfungsphase wurde ein Problem festgestellt , und es wurde von der oberen Ebene aus angewendet. Ich habe die Authentifizierung eingegeben, um auf die Anwendung zuzugreifen, aber sie hat gewartet. Ich habe den richtigen Benutzernamen und das richtige Passwort eingegeben, konnte aber nicht darauf zugreifen. Es scheint, dass es keine Möglichkeit gibt, auf die Datenbankverbindung zuzugreifen.
Der Port nach der MySQL-Bereitstellung ist im Allgemeinen 3306. Ich habe versucht, den 3306-Port zu pingen und zu telneten, und festgestellt, dass die IP gepingt werden kann, aber der 3306-Port kann nicht telnetiert werden, und es wird ein Fehler wie dieser angezeigt:
ERROR 1130: Host *.*.*.* is not allowed to connect to MySQL
Nachdem ich diesen Fehler gesehen hatte, habe ich online nachgeschaut und festgestellt, dass es grundsätzlich viele Lösungen gibt, aber warum muss ich speziell darüber schreiben?
Die Antwort lautet: Es gibt viele Lösungen für MySQL 5.6 im Internet. In 5.7 lautet die Lösung für diesen Fehler wie folgt:
1. Nach der ersten Anmeldung bei MySQL müssen Sie das Root-Passwort rechtzeitig ändern. Es gibt einen Unterschied zwischen 5.6 und 5.7, das heißt, das Passwortfeld in 5.6 lautet: Passwort, in Version 5.7 jedoch. Dieses Feld wird gelöscht und ersetzt durch: Authentication_String-Feld.
Die richtige Änderungsmethode ist:
update user set authentication_string=password("xxxx") where user = "root"; flush privileges;
2. Nach der Änderung verwenden wir den Befehl „use mysql“, um zur MySQL-Bibliothek zu wechseln Beachten Sie, dass diese MySQL-Bibliothek tatsächlich in MySQL existiert und eine Bibliothek ist, die einige db-bezogene Informationen speichert.
Befehl: use mysql;
3. Suchen Sie die Benutzertabelle und führen Sie den folgenden Befehl aus:
grant all privileges on *.* to 'root'@'%' identified by 'JLwg!2017' with grant option;
Es gibt viele Modifikationsmethoden dafür im Internet, insgesamt sollten es 4 sein, und ich verwende eine davon.
Die Bedeutung dieses Befehls besteht darin, die Zugriffsberechtigungen des Root-Benutzers so zu ändern, dass alle IPs auf diesen Benutzer zugreifen können. Auf diese Weise kann unsere Anwendung von der externen IP aus auf dieses MySQL zugreifen, andernfalls kann nur localhost darauf zugreifen ist sehr unpraktisch.
4. Führen Sie abschließend den Befehl flush privileges;
aus, um den MySQL-Dienst neu zu starten, und die Anwendung meldet sich erfolgreich an
Das obige ist der detaillierte Inhalt vonLösen Sie das Problem, dass andere IPs nicht auf die MySQL-Datenbank zugreifen können. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!