2012-04-14 19 views
0

Ich schreibe gerade ein Skript in Python, die Daten auf einen lokalen Host MySql DB hochlädt. Ich versuche nun, diese MySql DB auf einen Remote-Server mit einer statischen IP-Adresse zu verschieben. Ich habe eine Webhosting-Funktion, aber dies ermöglicht Clients nur, eine Verbindung zur MySql-Datenbank herzustellen, wenn ich die Domäne/IP-Adresse festlege, von der die Clients eine Verbindung herstellen. Mein Python-Skript wird auf einer Reihe von Computern ausgeführt, die über einen mobilen Breitband-Dongle verbunden werden, und daher variieren die IP-Adressen von Tag zu Tag, da die IP-Adresse dynamisch zugewiesen wird.Remote-Zugriff auf MySql DB (Hosting-Optionen)

Alle Vorschläge, wie Sie dieses Problem entweder mit meiner Webhosting-Einrichtung (cPanel) oder alternativ mit MySql-Hosting-Diensten lösen, die Remote-Zugriff von beliebigen IP-Adressen erlauben (vorausgesetzt, sie authentifizieren sich erfolgreich mit Passwörtern usw.) Würde SSH dies möglicherweise angehen und mir erlauben, Daten zu übertragen?

+0

Warum sollte Ihr Python-Skript keine Verbindung zu einem Server herstellen, der sich dann mit MySQL verbindet? Es ist keine gute Idee, eine IP mit der Datenbank sprechen zu lassen. –

+0

Ich stimme dir zu, ist nicht sicher, aber wenn der Server, der mit mysql verbinden IP dynamische ändern, müssen Sie alle IPs erlauben, oder manuell IP bei jeder Änderung zu aktualisieren. –

+0

Welche Art von Server ist es, wenn es seine IP ändert? Auf einer Heimverbindung gehostet? –

Antwort

2

zu Cpanel gehen und die Wildcard-% auf Remote-Mysql Anschlussmöglichkeiten (cPanel> Remote MySQL) für Sie

1

Eine weitere Option hinzufügen, ist eine dynamische DNS-Adresse von einem Anbieter für Ihren Laptop zu bekommen. Im Grunde installieren Sie eine kleine Software, die das fremde System mit Ihrer aktuellen IP aktualisiert. Sie können dann einen Domänennamen anstelle einer IP in Ihrem mysql Benutzerzugriff verwenden, und der Server wird die Suche nach Domainnamen durchführen und Ihnen Zugriff gewähren, ohne dass Sie Ihren mysql Server für Verbindungen von jedem Server auf dem Planeten öffnen müssen Sie würden basierend auf Gabriels Lösung tun. Dyndns ist eine Firma, die diesen Service anbietet.

Sie können auch ssh verwenden und Ihre Sitzungen tunneln. Sie müssten einfach Ihren lokalen Client einrichten, um Port-Forwarding für den 3306-Port auszuführen, Ihre SSH-Verbindung einzurichten und eine Verbindung zu localhost herzustellen, und Ihr Skript verhält sich so, als würde es sich lokal verbinden. Obwohl es ein wenig komplizierter zu installieren und weniger transparent ist, ist es eine großartige Arbeit. Angenommen Befehlszeilen-SSH-Client:

ssh -L 3306:domain_or_ip_mysqlserver:3306 [email protected] 

mysql -u username -p -h localhost databasename 
+0

es funktioniert - ich verwende den gleichen Ansatz. – marlar

0

Wie Gview sagte, ich dynamische DNS-Dienst ist eine mögliche Lösung. DynDns funktioniert gut, aber eine günstigere Lösung ist ZoneEdit.com. Ich verwende ZoneEdit, um mehrere Domänen zu verwalten, die in einer Windows Server-Box mit einer dynamischen IP (Kabelmodem) gehostet werden. Ich habe einen Windows-Dienst, der ständig nach einer IP-Adressänderung fragt. Wenn der Dienst eine Änderung erkennt, benachrichtigt er ZoneEdit. ZoneEdit leitet dann Anforderungen an die neue IP um.