I notice that this problem gets discussed occasionally but with no proper resolution, so I felt obliged to raise it again, as the consequences are quite serious for MySQL users.
The main problem is that the behaviour is different depending whether DEBUG is True or not. This leads to problems with testing and deployment that in an extreme case could cause data loss.
A secondary problem is that the exception in question isn't being caught and re-thrown as a Django exception, so that code that wants to deal with such scenarios must catch a MySQL-specific exception, tying us to the one database back-end.
For me, the right choice would be to make this configurable, and completely independent of the DEBUG setting. The right default would be to ignore warnings, as in general that's how most programs coding against MySQL would expect to treat them. Most people I would argue would expect a warning to be ignored and for processing to continue.
*Please* can this wontfix be re-considered -- the interwebs appear to be full of people getting caught out by this (if it will help the case, I can list numerous references!)
TIA
George