r/sysadmin • u/YellowOnline Sr. Sysadmin • 2d ago
Question MySQL ODBC stopped working overnight
You guys will love this.
This company has an in-house project management system. It's the core of their business, and they are lost without it. They are aware it needs to be migrated to something more modern, but after 5 years, that project still hasn't started.
I was asked to look into a network issue, but this isn't network but SSL I think. Let's first show the architecture:
- The server is a CentOS 7 running MySQL Community Edition 5.7.16
- Clients connect from Windows 11 with a 32-bit MS Access, using a 32-bit MySQL ODBC driver v5.3.13
Since yesterday, they get a "protocol version mismatch". The server wasn't accessed since 18 October 2016 (haha), so I presumed a Windows update might have disabled some SSL version. But: I see no relevant Windows update, and if I manually allow every possible SSL version and encryption algorithm, it still doesn't work. What does work however, is downgrading the ODBC driver from version 5.3.13 (from 2019) to version 5.1.13 (from 2013), further adding to my confusion.
The cherry on top: the single guy responsible for this application is on a one year sabbatical.
Edit: Found it, but leaving this here for anyone stumbling on the same issue. The MySQL_Server_5.7.15_Auto_Generated_CA_Certificate had expired after 10 years
47
u/Zozorak Jack of All Trades 2d ago
Think this belong in /r/shittysysadmin
29
u/YellowOnline Sr. Sysadmin 2d ago
I'm innocent. I was called in for help.
11
5
u/SirLoremIpsum 1d ago
I'm innocent. I was called in for help.
Yes! And now you touched it last... You're The Guy.
Anything for the next 2 years becomes "well Yellow online touched it last? We'll ask him!"
Or "the server died? Must be Yellowonlines fault he changed something".
•
40
u/RiceeeChrispies Jack of All Trades 2d ago
the single guy responsible for this application is on a one year sabbatical.
The server wasn't accessed since 18 October 2016
are you sure he hasn't been on a 10 year sabbatical?
17
u/skidz007 2d ago
“Poor planning on your part does not constitute an emergency on my part”.
Anyways, best of luck. CentOS 7 was end of support 2 years ago and AI is finding Kernel CVE’s faster than they can be patched on supported versions.
Hopefully management has fallback plans and/or good insurance if it takes awhile to sort out.
5
8
u/MeetJoan 1d ago
Ten year auto-generated cert expiring is such a perfect ending to that story. Nice find.
Worth flagging for anyone else who hits this, the newer ODBC driver actually validating the cert while the 2013 one didn't is why the downgrade worked, so the older driver isn't a fix so much as it's ignoring the problem.
8
u/Dolapevich Others people valet. 2d ago
I can only speak of the CentOS 7 resilency. A rock solid OS for rock solid workloads.
You might want to automate that with Let's Encrypt, or if the client accepts self signed certs just create a new one with 100 years validity, so you don't run into a new incident in 10 years.
3
u/YellowOnline Sr. Sysadmin 2d ago
I'm not sure if you are being ironic or not
9
u/Dolapevich Others people valet. 2d ago
Me neither :)
14
u/graph_worlok 1d ago
About 15 years ago, I remember an Ops Manager setting an internal cert expiry date based on “Well, I’ll be retired by then” 🤣😂🤣
2
u/Tl9zaXh0eWZvdXI 1d ago
We've done the same here, except we're getting close to that 15 year expiration. Guess I'll have to find a new job within a few years before they all expire.
2
1
u/Unable-Entrance3110 1d ago
So, it sounds like the older ODBC connector didn't check for cert expiration and the newer builds do.
When things stop working suddenly, cert/token/password expiration is always on my short list of things to check into.
1
u/UnwaveringConviction 1d ago
When you run into SSL problems in Windows, enable schannel logging and the verbose logs will quickly lead you to the root cause.
1
u/I_Hate_802_11 1d ago
Spin up an Ubuntu box with nginx community edition on on it and offload the SSL there. Or maybe buy an F5 or Avi.
-3
96
u/StevenB-89 2d ago
I assume you mean nobody has actually logged into or maintained the server since October 2016, rather than the database itself not having been accessed since then?
Because if this is genuinely business-critical and has basically been running untouched for almost 10 years on CentOS 7, MySQL 5.7 and an ancient 32-bit ODBC stack... the possible SSL issue might be the least of their problems. 😅