2017-09-19 2 views
10

Ich versuche gerade, eine Anwendung auf einem Server auszuführen, aber mein Kunde ist sehr wählerisch in Bezug auf ihre Daten und möchte die Datenbank auf ihrem eigenen internen Office-Server speichern. Ich habe MySQL installiert und kann die Anwendung lokal ausführen lassen, aber aus bestimmten Gründen muss die Anwendung anderswo ausgeführt werden.Fernzugriff auf MySQL auf Mac Mini/Time Capsule

Ich kann grundsätzlich nicht von einem anderen Ort auf MySQL zugreifen. Ich denke, mein Haupthindernis ist die Portweiterleitung an den richtigen Ort. MySQL ist auf einem Mac mini mit der lokalen IP-Adresse 192.168.1.242 installiert und der Router/das Modem ist eine Apple Time Capsule. Ich habe versucht, Tutorials anzuschauen, aber alle haben Optionen, auf die ich keinen Zugriff habe. Ich habe einen Screenshot der Optionen, auf die ich Zugriff habe, und der Einstellungen, die ich bisher versucht habe, angehängt.

enter image description here enter image description here

Weitere Informationen möglicherweise erforderlich ist:

  • ich von PHP verbinden müssen
  • ich einen Benutzer bis in MySQL mit einem Platzhalter festgelegt haben (%)
  • Ich teste es mit folgendem Befehl auf meinem lokalen Computer in CMD: mysql -u Benutzername -h Remote-IP-Adresse -p
  • bekomme ich folgende Fehlermeldung: ERROR 2003 (HY000): Kann nicht an MySQL-Server auf 'REMOTE_IP_ADDRESS' (10061)
  • Firewall ist vollständig auf dem Mac Mini ausgeschaltet
  • Es gibt nichts in der Datei my.cnf
  • OS sind Sierra

, dass alles, was ich von im Moment denken kann, aber jede Beratung würde sehr geschätzt werden und mehr Informationen erforderlich sein kann unter der Voraussetzung.

PS. offenbar bin ich nicht sehr gut mit MAC Maschinen/Netzwerke

+0

Just checking, dass die „Remote_ip_address“, dass Sie die externe WAN-Adresse für die Kunden schlagen, nicht die interne LAN-IP 192.168.1.242. Richtig? Die DHCP-Reservierung und die Portweiterleitung auf dem Flughafen sieht korrekt aus. – JNevill

+1

Ja, das ist richtig, vermieden bestimmte Details zu Sicherheitszwecken, aber ja, ich an der WAN-Adresse am Zeige – user1530205

+0

Statt auf MySQL Befehl Test zu verlassen, können Sie zu netcat wechseln ('netcat -vv REMOTE_ADDRESS 3306') oder Telnet (' telnet REMOTE_ADDRESS 3306') und sehen, ob Sie eine Verbindung greifen können. Ich nehme an, dass Sie den Fehler, den MySQL gibt, nicht geben können, aber es ist einen Fehlerbehebungsschritt wert. Mit 'telnet' können Sie' quit' eingeben, um zu beenden, wenn Sie eine erfolgreiche Verbindung herstellen und beenden müssen. – JNevill

Antwort

0

MySQL hat eine interne Firewall von Benutzern/IPs. Auch wenn Sie lokal eine Verbindung herstellen können, können Sie nicht über die Berechtigung der Ferne haben: (! Lokal zuerst)

dies versuchen, so root Benutzer auf dem MySQL-Server

GRANT ALL ON <db>.* TO '<user>'@'<remoteIP>' IDENTIFIED BY '<password>'; 

Wo

<db> den Namen der ist DB

<user> ist Name, unter dem Sie

<remoteIP> verbinden i s Ihr externes Büro IP VON, das Sie versuchen zu verbinden

<password> sollte selbsterklärend sein!

This will explain the options better

1

Für alle, die das ich ein sehr spezifisches Problem hatte liest.Ich habe MySQL mit Homebrew installiert. Homebrew bindet MySQL an 127.0.0.1 und erlaubt daher nur Verbindungen zu MySQL von derselben Maschine, egal was Sie versuchen zu tun. Um es zu beheben, musste ich /usr/local/Cellar/mysql//homebrew.mxcl.mysql.plist bearbeiten und --bind-address = 127.0.0.1 durch bind-address = * ersetzen.