Problem:
Clients können nicht zur MySQL Datenbank verbinden.
Lösung:
Oft ist die MySQL Datenbank nur für den lokalen Zugriff konfiguriert.
Die Lösung ist zweigeteilt:
Teil 1:
Es gibt zwei verschiedene Vorgehensweisen. Beide werden in der "my.cnf" in der Sektion [mysqld] konfiguriert.
#SkipNetworking
bind-address 127.0.0.1 # nur localhost
bind-address 192.168.0.100 # nur über die locale IP
# (sinnvoll innerhalb einer DMZ)
Sollte die "my.cnf" verändert worden sein, so muss auch der MySQL-Daemon davon in Kenntnis gesetzt werden:
/etc/init.d/mysql reload
Testen Sie, ob der Zugriff von Extern funktioniert. Tippen Sie dazu in eine DOS-Box oder in einen beliebig anderen externen Server folgendes ein:
"telnet meine-domain.tld 3306"
Sollte ein Verbinden fehlschlagen, so existieren weitere Störfaktoren (z.B. Firewall, Router, etc.). Bei Erfolg kommen die Versionsnummer und eine Zeichenabfolge. Drücken Sie dann mehrmals die Enter-Taste und Sie sind wieder auf der Eingabeconsole.
Teil 2:
Nun müssen die User dafür frei geschaltet werden. Anwender von Confixx oder Plesk können dies in der Admin-Oberfläche erledigen. Per Hand sieht es (anhand des Beispiel-DB-Users 'huschi') so aus:
#In der Shell/Putty:
mysql -uroot -p mysql
#root-Passwort eingeben
#nun sind wir im MySQL-Client, der nur noch SQL-Befehle versteht:
update user set host='%' where user='huschi';
update db set host='%' where user='huschi';
exit;
Dies kann man natürlich auch per phpMyAdmin erledigen.
Wichtig zu wissen: Die Tabelle "mysql.user" ist zuständig für die allgemeinen Benutzerrechte.
"mysql.db" regelt den Zugriff auf spezielle Datenbanken.
You can't find the answer to your questions in our online support center? Send us a support ticket.
Search our support center for answers to your question on InLoox, find user instructions and tutorials.