If you have backups but you have never tried to restore them, you do not have backups. This is true. I made a MySQL oopsie, and tried to restore a table from my voluminous backups of same, and was met with:
Incorrect datetime value: '2004-04-04 02:24:55' for column ...
If you have guessed that April 4, 2004 was when Daylight Savings Time began, you get a sticker. Yup, mysqldump writes out a date that it cannot parse. 2:24 AM did not exist, it was 3:24 AM. But in 2024, mysqldump dumped that TIMESTAMP field as the string "2:24" anyway, for reasons that I am sure that someone is about to tell me are Right and Proper.
Hand-hacking 700MB files in Emacs really brings me back to the Lucid Common Lisp days of tweaking single bytes in an a.out file to see what made it stop loading.
Update: The most frustrating part about this is that I had recently switched my schemata to use TIMESTAMP instead of DATETIME to avoid exactly this kind of nonsense. As I covered earlier, TIMESTAMP represents a point in time, a time_t, but DATETIME is a sequence of contextless ASCII characters throwing up their hands and yelling "YOLO!" But even that didn't save me, because mysqldump writes out TIMESTAMP using the exact same stupid string representation that I stopped using DATETIME to avoid.


