![MySQL kann keinen Remotezugriff einrichten](https://rvso.com/image/1520082/MySQL%20kann%20keinen%20Remotezugriff%20einrichten.png)
Ich versuche, MySQL für den Zugriff von jedem Host aus einzurichten.
> Berechtigungen für „root“@„%“ anzeigen;
Gewähren Sie 'root'@'%' alle Privilegien für *.* mit der Gewährungsoption
meine.cnf
[root@p419386 etc]# cat my.cnf
#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
Dateien in /etc/my.cnf.d: client.cnf enable_encryption.preset mysql-clients.cnf server.cnf tokudb.cnf Keine enthältskip-networking
Inserver.cnf
bind-address=0.0.0.0
Ich verwende CentOS 7, uname -a
gibt
Linux p419386 2.6.32-042stab120.16 #1 SMP Tue Dec 13 20:58:28 MSK 2016 x86_64 x86_64 x86_64 GNU/Linux
MySQL-Server ist10.1.21-MariaDB MariaDB Server
Verbindung vom Remote-Host immer noch nicht möglich :(
Das Problem liegt definitiv nicht am Netzwerk oder an der Firewall.
Sind die obigen Einstellungen korrekt?Was ist falsch?
SchließlichDas Problem wurde gefundenin iptables-Regeln. Also ist die MySQL-Konfiguration in Ordnung!
Antwort1
Wenn wir uns die Konfiguration ansehen, die Sie haben (sofern Sie sie explizit gepostet und uns mitgeteilt haben, was darin enthalten ist), sieht es so aus, als ob es funktionieren sollte. Zumindest dieoffizielle MariaDB KBwürde darauf hinweisen.
Möglicherweise fehlt Ihnen in diesen Konfigurationsdateien etwas, oder Sie haben ein anderes Problem. Sie haben zwar gesagt, dass das Problem nicht mit dem Netzwerk oder der Firewall zusammenhängen kann, aber Ihr letzter Fehler ERROR 2003 (HY000): Can't connect to MySQL server on '<host>' (113)
deutet darauf hin, dass es dennoch ein Problem sein könnte.
Sie könnten versuchen, mit dem MySQL-Befehl eine Verbindung zu Ihrer lokalen IP (127.0.0.1) auf Ihrem Server herzustellen. Wenn Sie sich die Frage ansehen, die ich verlinkt habe, würden Sie Folgendes verwenden:
mysql -h 127.0.0.1 -u root -p
Wenn Sie mit diesem Befehl eine Verbindung herstellen können, wissen Sie, dass Ihr MariaDB betriebsbereit ist und IP-basierte Verbindungen akzeptiert.
Nun kann es sein, dass keine Bindung an die externen IP-Adressen erfolgt (versuchen Sie vielleicht, nur Ihre externe IP für festzulegen bind-host
) oder dass Ihre Firewall (Client oder Server) oder eine andere Netzwerkkomponente die Verbindung stört und blockiert.
Um zu prüfen, woran der Server gebunden ist, können Sie Folgendes ausführen (als Root oder mit sudo):
netstat -l -n -p
Sie sollten dann eine Zeile wie die folgende erhalten:
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
...
tcp 0 0 127.0.0.1:3306 0.0.0.0:* LISTEN 1234/mysqld
...
Wie Sie sehen, verweist der MySQL-Server in diesem Fall auf die Localhost-Adresse auf Port 3306.