Could you please confirm that the MySQL service is the reason the site is experiencing the downtime issues? This will mean that every time you experience a downtime period your site will load with the “Error establishing database connection” error or similar depending from the error handling of your code or CMS.
You can always examine the MySQL
error_log in order to track down any errors. On Ubuntu systems, the default location for the MySQL is
In many cases, the error logs are most easily read with the
less program, a command line utility that allows you to view files but not edit them:
sudo less /var/log/mysql/error.log
When MySQL isn’t behaving as expected, you can obtain more information about the source of the trouble by running this command and diagnosing the error based on the log’s contents.
What you can also do is to use the MySQLTuner script.
The MySQLTuner is a script written in Perl and allows you to quickly test your MySQL configuration and it gives you suggestions for adjustments to increase performance and stability.
According to the official GitHub page, it supports 300 indicators for MySQL/MariaDB/Percona Server in this last version.
To run the script you could do the following:
- SSH to your Droplet
- Download the script:
wget http://mysqltuner.pl/ -O mysqltuner.pl
The script would run multiple checks against your MySQL instance, all checks done by MySQLTuner are documented here.
Also as stated in the official documentation, it is still extremely important for you to fully understand each change you make to a MySQL database server. If you don’t understand portions of the script’s output, or if you don’t understand the recommendations, you should consult a knowledgeable DBA or system administrator that you trust.
As a good practice make sure to always test your changes on staging environments before implementing them on your production database.
On the same note, if you want to have a worry-free MySQL hosting and focus on your application, I would recommend trying out the DigitalOcean Managed Databases:
This was mini tutorial was posted from @bobbyiliev in this question in our community: https://www.digitalocean.com/community/questions/how-to-tweak-mysql-mariadb-configuration-for-increased-performance-and-stability
You can also check our tutorials on How To Troubleshoot Issues in MySQL:
Hope this helps!