2017-01-19 7 views
1

Ich habe Probleme bei der Remote-Verbindung mit mySQL-Datenbank über Python.Remote-Zugriff auf mySQL mit Python

verwende ich folgendes zu mySQL verbinden:

import mysql.connector 
cnx = mysql.connector.connect(host='XXX.XXX.XXX.X',user='XXXX',password='XXXXXX',database='testdb') 

Aber ich erhalte den folgenden Fehler:

2003: Can't connect to MySQL server on '%HOST%:3306' (10060 A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond) 

Der Server läuft und wenn ich laufe den gleichen Code auf dem Computer, den ich laufen der Server von der Verwendung 'localhost' import mysql.connector CNX =

mysql.connector.connect(host='localhost',user='XXXX',password='XXXXXX',database='testdb') 

es funktioniert und ich kann die Daten in der Datenbank ändern. Ich versuche jedoch, es von einem anderen Computer aus zu verbinden.

Ich habe versucht mit GRANT ALL ON *.* TO [email protected] IDENTIFIED BY 'password'; aber kein Ergebnis. Ich überprüfte meine Firewall und erlaubte alle eingehenden und ausgehenden Verbindungen über Port 3306, der standardmäßig verwendet wird.

Ich bin neu in mySQL und habe wirklich keine Ahnung, was zu tun ist. Ich weiß nicht einmal, ob ich den richtigen Hostnamen verwende: ') Ich benutze die IP-Adresse des Computers, von dem ich den Server leite, ich denke, das stimmt.

Ich bin verloren und jede Hilfe würde sehr geschätzt werden!

Antwort

0

Sie müssen nicht alle Privilegien zum Benutzer GRANT. Sie müssen MYSQL mitteilen, dass dieser Benutzer sich von einem Remote-Standort aus anmelden darf.

In der Tat, wie Sie jetzt den Fernzugriff über dieses Benutzerkonto erlauben, sollten Sie sicherstellen, dass es nur auf die Datenbank zugreifen können (n) muss es, und auf jeden Fall nicht GRANT

Zum Beispiel

verwenden können
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass'; 

Ermöglicht diesem Benutzer die Verbindung von einer beliebigen IP-Adresse. Um mehr zu sichern, sollten Sie versuchen, um genauer zu sein und eine einzelne IP-Adresse angeben, wenn Sie können

CREATE USER 'myuser'@'11.22.33.44' IDENTIFIED BY 'mypass'; 

Denken Sie daran, erstellen Sie ein neues Benutzerkonto hier, weil Sie bereits einen [email protected]

In beiden Fällen Sie müssen sicherstellen, dass das Passwort ein starkes ist, besonders verwenden Sie die % irgendeine IP-Option

+0

Dies löst nicht mein Problem. Es erstellt nur einen anderen Benutzer, der keine Verbindung zur Datenbank herstellen kann. Ich bekomme immer noch den gleichen Fehler – EerlijkeDame

+0

Dann überprüfen Sie die Firewall blockiert Sie nicht – RiggsFolly

+0

Ich machte es so meine Firewall ermöglicht eingehende und ausgehende Verbindungen für Port 3306 für alle IPs. – EerlijkeDame