Ich habe ein DB-Frontend unter Xojo 2021 mit dem MySQLCommunityServer-Plugin entwickelt. Die ganze Zeit unter MacOS keinerlei Problem. Dann die App für Windows X64 /Zielsystem Win 11) compiliert und immer nur die Fehlermeldung: “Verbindung zur Datenbank nicht möglich”.
Was ich versucht habe:
64-Bil-Version der App
32-Bit-Version der App
Windows-Firewall aus
Windows-Defender aus
App als Admin gestartet
LAN und WLAN getestet
Browser/Surfen funktioniert
2 versch. reale Computer und eine VM unter VirtualBox
Immer das gleiche Problem. Dabei läuft die Mac-Version au sdem gleichen Netz, bei VM von der gleichen Maschine völlig problemlos. Was ist das? Danke für Tips.
Na “ganz gewöhnlich”, wie ich schrieb läuft es ja unter MacOS …
Dim db As New MySQLCommunityServer
db.Host = db_server.text
db.DatabaseName = db_name.text
db.UserName = db_user.text
db.Password = db_pass.text
if db.Connect then
MsgBox "DB Verbindung hergestellt!"
db.Close
else
MsgBox "DB Verbindung konnte nicht hergestellt werden?"
end if
Nein, ist extra freigeschaltet. Bei All-Inkl (Provider) gibts dafür einen Button in der Web-GUI. Unter MacOS läuft es ja … sogar aus dem fahrenden ICE, vom WE-Grundstück … quasi überall. Muss etwas mit Windows zu tun haben.
Bei aktuellen Xojo Versionen gibt db.Connect kein True/False mehr zurück, sondern eine Exception (siehe Dokumentation db.connect).
Schon mal geschaut, ob die Verbindung nicht doch korrekt aufgebaut wurde und nur die Meldung falsch ist?
Dein Einwand würde zwar das aktuelle Verhalten unter Windows erklären, aber was ist mit MacOS? Da funktioniert db.connect als boolean … ? Ich teste das, danke für den Hinweis …
So, ich habe mal eine kleine Testapp mit db.connect in einem Try/Catch-Konstrukt mit dem folgenden Code gemacht. Unter MacOS läuft sie völlig problemlos, unter Windows gibts die Fehlermeldung: “SSL connection error: unknown error number”.
Das Seltsame: Ich will gar keine SSL-Verschlüsselung, sieht man doch am Code, oder?
Dim db As New MySQLCommunityServer
Dim ret As Boolean = False
Dim ers As String
db.Host = db_host.Text
db.DatabaseName = db_name.Text
db.UserName= db_user.Text
db.Password= db_passwd.Text
Try
db.Connect
ret = True
Catch err As DatabaseException
ret = False
ers = err.Message
End Try
If ret Then
MsgBox "drin!"
db.Close
Else
MsgBox ers
End If
In einem anderen Post fand ich den Hinweis auf “db.secureAuth = false”, brachte aber auch keine Änderung. Ich las auch, das Plugin aus einem Xojo 2015 zu verwenden, das werde ich nun versuchen …
Dim db As New MySQLCommunityServer
Dim ret As Boolean = False
Dim ers As String
db.Host = db_host.Text
db.DatabaseName = db_name.Text
db.UserName= db_user.Text
db.Password= db_passwd.Text
db.SSLMode = False
db.SecureAuth = False
db.SSLEnabled = False
db.port = db_port.Text.Val
Try
db.Connect
ret = True
Catch err As DatabaseException
ret = False
ers = err.Message
End Try
If ret Then
MsgBox "drin!"
db.Close
Else
MsgBox ers
End If
Mit den Ports 3306 (SSL-Fehler) und 3307 (no connection) probiert, kein Erfolg unter Windows.
Die Ursache muss mit Windows bzw. dem Windows-Code im Plugin zu tun haben! Unter MacOS läuft es und auch unter Linux auf einem Raspi. Immer der selbe Code und immer der selbe MySQL-Server.
Am MBS-Plugin “schreckt” mich zur Zeit ab, dass es auf externe Libs bzw. DLLs zurückgreift. Das erschwert die möglicherweise die Installation bei Fremden …
Ich habe die Erfahrung mit SSL und dem MySqlCommunityServer-Plugin auch schon machen müssen. Ich hatte mehrere Apps ewig auf einem Linux-Server laufen und musste dann auf eine MySql in Azure wechseln. Das hat auf Mac und Windows gut funktioniert, nur nicht auf Linux da dort anscheinend das Plugin kein TLS1.2 unterstützt