Ich habe eine Anwendung in VB6 entwickelt und verwende einen Online-MySQL-Datenbankserver zum Speichern der Daten meiner Anwendung.
Das erste Mal, wenn ich versuche, eine Verbindung zu meinem Datenbankserver herzustellen, ist erfolgreich, aber nachdem ich meine Anwendung geschlossen und erneut gestartet habe, erhalte ich:
Verbindung zum MySQL-Server (10060) nicht möglich "
Nach einiger Zeit (ca. 30 Minuten) kann ich mich wieder erfolgreich mit der Datenbank verbinden.
- Ich habe allen MySQL-System- und globalen Variablen wie connection_timeout , wait_timeout usw. Maximalwerte gegeben .
- Ich habe meinem MySQL-Benutzer alle Berechtigungen erteilt.
- Die Firewall auf meinem Computer ist ausgeschaltet.
- Alle Verbindungen werden ordnungsgemäß geschlossen, wenn die Anwendung geschlossen wird.
Ich habe die technischen Mitarbeiter, die den Online-MySQL-Datenbankdienst bereitstellen, gefragt und sie haben mir diese drei Gründe genannt:
- Der lokale Computer, von dem aus Sie eine Verbindung herstellen möchten, wird auf dem Server nicht in die Whitelist aufgenommen.
- Die maximale Anzahl von Verbindungen für den Benutzer wurde überschritten.
- Der MySQL-Server war zu diesem Zeitpunkt ausgefallen (obwohl sie sagten, dass ihr Server nicht ausgefallen war).
Wie kann ich die ersten beiden Gründe lösen oder feststellen, dass sie die Ursache des Problems sind? Oder könnte es ein anderes Problem geben, das dort nicht aufgeführt ist?
quelle
Antworten:
Sie müssen sicherstellen, dass es Folgendes gibt:
1) Benutzer erstellt, der Fernzugriff hat, z. B. Benutzer @ 'xxxx'
2) Es besteht eine Verbindung zwischen den beiden Computern (sie können sich beispielsweise gegenseitig anpingen oder über eine andere Methode aufeinander zugreifen). Der Port wird zwischen den beiden Computern geöffnet
3) In
my.ini/my.cnf
gibt es blockierende Verbindungsparameter wie:bind-address=a.a.a.a
oderskip-networking
4) Der Dienst ist aktiv, wenn Sie versuchen, eine Verbindung vom anderen Computer herzustellen
quelle
Dies ist höchstwahrscheinlich ein netzwerkseitiges Problem, und der Datenbankdienstanbieter muss eine neue Regel in der Firewall (iptables) erstellen. Trotzdem müssen wir nur einige Dinge vom Anbieter bestätigen. Da das Verhalten nicht stabil ist (gelegentlich können Sie eine Verbindung herstellen und manchmal auch nicht). Es handelt sich also nicht um ein Problem mit Benutzerrechten (GRANT ALL ON ...)
quelle
Stellen Sie die Ausgabe des Telnet (IP): -Ports bereit
Ich hatte das letzte Mal das gleiche Problem und das iptables ist der Schuldige zu dieser Zeit.
Beim Neustart des Servers wird die iptables-Regel auf Standard zurückgesetzt und der Filter für bestimmte Ports nicht angewendet.
Überprüfen Sie die iptables
quelle
Überprüfen Sie zunächst, ob Sie dem Benutzer auf Ihrem aktuellen Host, über den Sie versuchen, eine Verbindung zum MySQL-Server herzustellen, die richtigen Berechtigungen erteilt haben.
select * from mysql.user where host="host_name"\G;
Ich hoffe das ist hilfreich für dich.
quelle
Ich habe einen ganzen Tag damit verbracht, mir den Kopf zu zerbrechen, um dies herauszufinden, und es stellte sich heraus, dass das Windows-Netzwerk als öffentlich statt als privat festgelegt wurde, wodurch alle eingehenden Verbindungen blockiert werden. Hoffe das hilft jemandem.
quelle
Einige Hosting-Anbieter blockieren standardmäßig aus Sicherheitsgründen den Remotezugriff auf seine MySQL-Server. Wenn Sie den RAS-Dienst entsperren müssen, teilen Sie ihnen mit, dass dieser Dienst entsperrt werden soll.
Andernfalls testen Sie Ihre App lokal als localhost und wenn dies einwandfrei funktioniert, ändern Sie den Hostnamen usw. Datenbankparameter in Ihrer App und laden Sie sie auf Ihren Webhosting-Server hoch, das funktioniert einwandfrei !!!.
Achten Sie darauf, dass Ihr Datenbankdesign mit Ihrem lokalen Datenbankdesign übereinstimmt. Dies ist sehr wichtig !!!
Ich hoffe das ist hilfreich für dich.
quelle
Zwei Dinge, die für Mariadb-Benutzer hinzugefügt werden müssen:
1) die my.cnf ist auch für uns => da habe ich die
bind-address = 127.0.0.1
linie gefunden2) Sie müssen den Dienst neu starten, nachdem Sie die Datei my.cnf geändert haben
Hoffe das hilft
quelle