Wechsel zu MySQL wegen PHP MSSQL – Verbindungsproblem

In der Zhylon Cloud haben wir historisch einen MSSQL Server für die Abarbeitung der Jobs in einer Queue im Einsatz. Leider hatten wir in der Vergangenheit immer wieder Probleme beim Einsatz des SQL Servers von Microsoft. So auch der folgende Fehler, der einen Teil der Anwendung am vergangenen Wochenende lahm gelegt hat.

Nach einer Routinewartung hatten wir plötzlich Probleme, das die Anwendung sich mit dem Server Verbinden konnte. Wir haben hier, wie fast überall, Laravel 9 in der Standardkonfiguration im Einsatz und haben dann folgenden Fehler erhalten:

Fatal error: Cannot connect to server: 192.168.1.95\ZHYLONBD,3306 : SQLSTATE: 08001
code: 10054
message: [Microsoft][ODBC Driver 17 for SQL Server] TCP Provider: Error code 0x2746
SQLSTATE: 08001
code: 10054
message: [Microsoft][ODBC Driver 17 for SQL Server] Client unable to establish connection in DbConnector.php on line 110

Eine Lösung dafür haben wir schnell gefunden und wird von yitam auf GitHub im Repository vom microsoft/msphpsql beschrieben. Das Problem war wohl, das Versäumnis auf eine neuere Version des SQL Servers umzusteigen. Ein paar Tests mit Docker und dem SQL Server 2017 und 2019 waren erfolgreich und hatten keine Probleme. Allerdings hatten wir nicht geplant hier ein Upgrade auszuführen, da hiermit auch deutlich höher Kosten entstehen würden und wir sehr kritisch und auch unzufrieden mit dem SQL Server sind.

Wir haben uns daher kurzerhand dazu entschieden, die alte MSSQL Datenbank durch eine MySQL Datenbank zu ersetzen. Dies ging tatsächlich relativ schnell und es waren kaum Anpassungen notwendig. Ein paar Migrations mussten angepasst werden, da die Syntax nicht kompatibel war. Außerdem mussten wir für eine relativ alte Datenbank einmal alle Migrationen „rückwärts“ erstellen, da es hierfür keine Migrations gab. Wir haben hierfür das Package Xethron/migrations-generator verwendet, welches zwar nicht länger aktualisiert wird, es für diese einmalige Nutzung aber völlig ausreichend war.

Als Review zu dem Thema haben wir uns nun festgelegt, dass wir in den nächsten Monaten noch die ein oder andere ältere Struktur ablösen und modernisieren werden. Außerdem haben wir einen Prozess angestoßen, der zukünftig dafür sorgen soll, dass Updates und Upgrades zeitnah ausgeführt werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.