Which could cause corruption of the database due to an incomplete state.
I am currently finding out if it is possible to have the game server start the MySQL server if it is down. I am sure that it will work under normal circumstances (unless privileges prevent it) but I am worried about attempting to do that while the computer is shutting down.
No matter how much you do to try and get ordered shutdown, you're still not going to be robust against system shutdown or power loss. Just do it right and use the database as your backend, or design a system that handles lost updates correctly. There's lots of existing documentation out there describing high performance database architecture and caching systems; you can easily apply it to your problem.
(The common solution to incomplete database state is transactions, FYI.)
Thanks for the input, but it will take too long to redesign the database code. I might try it on one of my future projects though.
Edit: I have decided that getting this to work well will take too long, so the server won't be running as a service. I may come back to this at some point in the future.