Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Es kann keine Remote-Verbindung zur EC2-MySQL-Installation hergestellt werden

Das beste Tool, das ich gefunden habe, war sqlyog (vielleicht auch mysql workbench), das den Hostnamen, von dem Sie kommen, bei der fehlgeschlagenen Verbindung tatsächlich mitteilt.

Der Grund, warum ich es mag, ist, dass es die Sicherheit streng hält und so etwas wie Access denied for user " ". Beachten Sie, diesen Hostnamen habe ich mir gerade ausgedacht, aber es ist wichtig, was auch immer Ihrer eingibt. Andernfalls ist es Wildcard-Zeit, etwas, das ich nicht tun werde. Sie können sich dafür entscheiden.

das ist wichtig, weil dieser Hostname (hdm38.newyork.comcastbusiness.net ) verwende ich während mysql create user im Gegensatz zur Verwendung von Platzhaltern wie %

Ich habe diese Verbindung oben fehlschlagen lassen, aber ich notiere, was der Hostname oben ist. Sie werden es unten sehen.

Eine kurze Checkliste

1) Ihr Remote-Benutzer verbindet sich über ein Konto, das mit dem entsprechenden user,host erstellt wurde Einträge (siehe Ausgabe von select user,host from mysql.user order by 1,2 )

CREATE USER 'santa'@'hdm38.newyork.comcastbusiness.net' IDENTIFIED BY 'mypassword';

Mit dem obigen Befehl haben wir jetzt einen neuen Benutzer, der die Chance hat, hineinzukommen. Kann nichts tun. Kann nicht zu einer db wechseln. Im Grunde können sie einfach Dinge tun wie select now();

2) Sie haben grants geleistet mit flush privileges (zumindest ersteres)

GRANT ALL PRIVILEGES ON mydb123.* TO 'santa'@'hdm38.newyork.comcastbusiness.net';

Unser Benutzer mit dem obigen Befehl kann jetzt alles in der mydb123-Datenbank/dem Schema tun. Sehen Sie sich den obigen Grant-Befehl im Handbuch an, um den Zugriff auf das Nötigste für die von Ihnen erstellten Benutzer einzustellen.

Wenn Sie mit mysql-Sicherheit noch nicht vertraut sind, schließen Sie WITH GRANT OPTION nicht ein bis Sie es recherchieren.

Es gibt diejenigen, die sagen würden, dass der obige Hostname für die Schritte 1 und 2 „%“ sein muss. Das bedeutet, dass der Weihnachtsmann von jedem Host aus eine Verbindung herstellen kann. Es ist deine Entscheidung. Fangen Sie fest an, lockern Sie sich, sobald Sie irgendwo angekommen sind und die Recherche darüber durchgeführt haben.

3) Sie haben my.cnf geändert und geänderte bind-address weg von 127.0.0.1 oder localhost , zugunsten von 0.0.0.0

Wenn die Bindungsadresse nicht 0.0.0.0 ist , verbinden Sie sich nur mit ssh

4) Sie haben my.cnf geändert und haben eine entfernte Zeile #skip-networking . Selbst wenn Sie die Linie erstellen müssen, nur um sie zu entfernen, tun Sie es.

3/4 Änderungen erfordern einen Neustart des MySQL-Daemons

5) Firewall-Probleme. Für EC2 benötigen Sie also Ihre AWS Security Group die für die Instanz aktiv ist, um die Öffnung von Port 3306 einzuschließen