It's not extremely hard, but you have to have some experience with servers, i.e., OS setup, http server configuration, etc. You could also opt for managed hosting, where your hosting company manages the server for you.
Ah, so it's just the CMS that does database requests? How often does the content of the CMS change? If it doesn't change a lot you could see if SQLite would work as the database for the CMS instead of MySQL. Read performance of SQLite is very good, but INSERT / UPDATE is quite poor, so if you don't INSERT and UPDATE a whole lot you should be fine. Plus you don't have to share the connections you can make to your database with others on your server.