We have a node.js app that uses node_msyql, a great little library for accessing MySQL databases.
Unfortunately, if our connection is not used for maybe 8-10 hours, the next time we try to run a query, we get a "No database selected" error back from the server. We need to add a "USE db" somewhere, but I can’t figure out where.
Now, it makes sense to me that connections would go stale, and it seems as though node_mysql is refreshing those stale connections, but there doesn’t seem to be a way to make sure that the right db is connected. I was looking for a .connected() callback or event or something that would let me make sure the correct DB was alway USE‘d, but no luck so far.
Any suggestions how to do this?
Ys, client tries to reconnect. You can try to query ‘use db’ on reconnect using code like this:
This is where reconnection happen in the node-mysql (‘end’ handler):
https://github.com/felixge/node-mysql/blob/master/lib/mysql/client.js