How It Began
It started withER_M_BIGGER_THAN_D
, which doesn’t sound like an error at all. Anyone who knows alphabetical order knows that M is bigger than D! Of course, the error is really about an attempt to define a decimal or float column wrongly.
Next was ER_TOO_BIG_SCALE
, about which I tweeted “MongoDB doesn’t have this error, as far as I know, but MySQL does.”
MongoDB doesn't have this error, as far as I know, but MySQL does. ER_TOO_BIG_SCALE
— Baron Schwartz (@xaprb) November 21, 2014
Which reminded us of Big Data, of course.
Doge Error Codes
We have an inexplicable fixation for the Doge meme. Our chatbot even has a/doge me
command. If you’re not familiar with the meme, it’s basically pictures and variations of pictures of a dog, with Comic Sans font representing his internal dialogue expressing his feelings of amazement at his superiority. His grammar is oddly stilted, with awkward use of superlatives like “such,” “many,” and “very.”
Of course, there are some Doge error codes, which we sprinkled in our chat channel with Doge emoticons.
We decided, however, that ER_CANNOT_USER
is “the dogest of them all.” User isn’t a verb, but Doge likes to verb words. It weirds language.
Other Fun Errors
Here’s a sprinkling of some other fun error definitions:ER_NORMAL_SHUTDOWN
- wait, is that an error?ER_ALTER_INFO
- its doppelganger isER_ALTER_EGO
ER_TABLE_CANT_HANDLE_BLOB
- unless the table is named STEVE_MCQUEENER_KEY_DOES_NOT_EXITS
- [sic]
Ready For Connections
Finally, there’sER_STARTUP
. It’s not what it seems, though. This is the familiar ready-for-business message in the server’s log:
Error: 1408 SQLSTATE: HY000 (ER_STARTUP) Message: %s: ready for connections. Version: '%s' socket: '%s' port: %d %s
At SolarWinds we’re ready for business, too. If you’d like to monitor MySQL queries and performance the easy way with SolarWinds Database Performance Monitor (DPM), sign up for a free trial today.
But Seriously, Folks
This all came about for two reasons. First, we added an opensource package of error code definitions for Go. No more comparisons to magic numbers or strings when you get an error from the server. Second, as you may know, SolarWinds DPM captures production query traffic from the network, and reveals hidden details such as queries that return warnings or errors to clients. We’re in the process of making the user interface expose those errors and messages more nicely. Of course, we need a list of those, which you can find in theerrmsg.sys
file in the server distribution. (Trivia fact: aside from this file, the mysqld binary is self-contained and can be run without other dependencies.)
Now, go forth and err no more!