How It BeganIt started with
ER_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.”
Which reminded us of Big Data, of course.
MongoDB doesn't have this error, as far as I know, but MySQL does. ER_TOO_BIG_SCALE— Baron Schwartz (@xaprb) November 21, 2014
Doge Error CodesWe have an inexplicable fixation for the Doge meme. Our chatbot even has a
/doge mecommand. 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_USERis “the dogest of them all.” User isn’t a verb, but Doge likes to verb words. It weirds language.
Other Fun ErrorsHere’s a sprinkling of some other fun error definitions:
ER_NORMAL_SHUTDOWN- wait, is that an error?
ER_ALTER_INFO- its doppelganger is
ER_TABLE_CANT_HANDLE_BLOB- unless the table is named STEVE_MCQUEEN
Ready For ConnectionsFinally, there’s
ER_STARTUP. It’s not what it seems, though. This is the familiar ready-for-business message in the server’s log:
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.
Error: 1408 SQLSTATE: HY000 (ER_STARTUP) Message: %s: ready for connections. Version: '%s' socket: '%s' port: %d %s
But Seriously, FolksThis 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 the
errmsg.sysfile 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!