Did your tiny AWS Bitnami WordPress server run out of disk space? The culprit may be unoptimized data tables in MySQL. Finding a 4.9GB wp_options.idb file on your server is not as uncommon as you may think. What makes it surprising is when you look at your wp_options entries and discover there are only 300 rows in that table with limited text in the option_value column.
Thankfully there is an easy fix as long as you can get enough disk space to manage the task. Start by looking for any log files or other files you are CERTAIN you don’t need so you can shut down web, php, and mysql services.
Finding Large Files
# sudo find / -xdev -type f -size +50M -print | sudo xargs ls -lh | sudo sort -k5,5 -h -r
This command finds all files on the drive over 50M in size.
Look for specific MySQL raw data files (wp_options.idb for example) in that list. Remember the table name for later.
Stopping System Services
Stop the services. On an AWS Bitnami WP server they have their own special control scripts in place of the standard Linux services library.
bitnami@ip-172-31-87-127:/opt/bitnami/mysql$ sudo /opt/bitnami/ctlscript.sh stop mysql usage: /opt/bitnami/ctlscript.sh help /opt/bitnami/ctlscript.sh (start|stop|restart|status) /opt/bitnami/ctlscript.sh (start|stop|restart|status) mysql /opt/bitnami/ctlscript.sh (start|stop|restart|status) php-fpm /opt/bitnami/ctlscript.sh (start|stop|restart|status) apache help - this screen start - start the service(s) stop - stop the service(s) restart - restart or start the service(s) status - show the status of the service(s)
Stop all the services, then start MySQL only.
Cleaning Up MySQL
If you are doing system admin commands you should know how to find your data access credentials in the wp-config.php file. No need to go into that here. Find the credentials and login to MySQL.
No OPTIMIZE that table (and any others that you suspect have unusually large .idb files).
mysql> OPTIMIZE NO_WRITE_TO_BINLOG TABLE wp_options;
That’s it. One simple command may easily recover 4.9GB of disk space , making a 4.9GB file on a 9GB drive get back to a more reasonable 10MB.
Why WordPress core or cron jobs are not doing this on a regular basis is a question for another day…