danvega
By:
danvega

MySQL keeps crashing - Error establishing a database connection

March 4, 2016 5.9k views
MySQL WordPress DigitalOcean

My wordpress blog has been working for over a year and all of a sudden it stopped working. This morning I posted the following question on Stack Overflow

http://stackoverflow.com/questions/35799917/wordpress-site-down-mysql-crashing

I first decided to bump my memory from 512 to 1GB on the droplet. With no responses I started doing some digging. I found this solution which looked exactly like my problem so I tried setting up a swap file

http://www.webtrafficexchange.com/comment/reply/156

Still not having any luck here and this is the latest from my logs. Anyone have any clue is to what is happening to me?

160304 14:05:29 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
160304 14:05:29 [Note] Plugin 'FEDERATED' is disabled.
160304 14:05:29 InnoDB: The InnoDB memory heap is disabled
160304 14:05:29 InnoDB: Mutexes and rw_locks use GCC atomic builtins
160304 14:05:29 InnoDB: Compressed tables use zlib 1.2.8
160304 14:05:29 InnoDB: Using Linux native AIO
160304 14:05:29 InnoDB: Initializing buffer pool, size = 64.0M
InnoDB: mmap(68681728 bytes) failed; errno 12
160304 14:05:29 InnoDB: Completed initialization of buffer pool
160304 14:05:29 InnoDB: Fatal error: cannot allocate memory for the buffer pool
160304 14:05:29 [ERROR] Plugin 'InnoDB' init function returned error.
160304 14:05:29 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
160304 14:05:29 [ERROR] Unknown/unsupported storage engine: InnoDB
160304 14:05:29 [ERROR] Aborting

160304 14:05:30 [Note] /usr/sbin/mysqld: Shutdown complete

3 comments
  • Also - I am offering up an Amazon Gift Card for anyone who solves this. It is beyond frustrating and I just want to fix it :(

  • I was able to get it fixed thanks to asb comment. I am still a little unsure how but its working.

  • I have the same problem. I would be very grateful if you could describe your solution. I can't find the 'asb comment' you refer to. Thank you in advance!

2 Answers

One possibility is that you are being attacked via the XML-RPC interface. It's unfortunately a fairly common reason that MySQL will exhaust all available memory. To check if this is the case, look for mentions in the webserver's logs: grep xmlrpc /var/log/apache2/access.log

If that is the case, take a look at this article for a few options on how to mitigate the attack:

WordPress is a popular and powerful CMS (content management system) platform. Its popularity can bring unwanted attention in the form of malicious traffic specially targeted at a WordPress site. There are many instances where a server that has not been protected or optimized could experience issues or errors after receiving a small amount of malicious traffic. This guide will show you how to protect WordPress from XML-RPC attacks on an Ubuntu 14.04 system.
  • Nothing came back but thank you for the suggestion

  • I spoke too soon... I have some othervhostsaccess.log(s) and xmlrpc is all over those :(

  • I turned stopped apache and restarted mysql and it looks like its running fine now...

    160304 15:07:51 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
    160304 15:07:51 [Note] Plugin 'FEDERATED' is disabled.
    160304 15:07:51 InnoDB: The InnoDB memory heap is disabled
    160304 15:07:51 InnoDB: Mutexes and rw_locks use GCC atomic builtins
    160304 15:07:51 InnoDB: Compressed tables use zlib 1.2.8
    160304 15:07:51 InnoDB: Using Linux native AIO
    160304 15:07:51 InnoDB: Initializing buffer pool, size = 64.0M
    160304 15:07:51 InnoDB: Completed initialization of buffer pool
    160304 15:07:51 InnoDB: highest supported file format is Barracuda.
    160304 15:07:51 InnoDB: Waiting for the background threads to start
    160304 15:07:52 InnoDB: 5.5.38 started; log sequence number 3369568475
    160304 15:07:52 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
    160304 15:07:52 [Note] - '0.0.0.0' resolves to '0.0.0.0';
    160304 15:07:52 [Note] Server socket created on IP: '0.0.0.0'.
    160304 15:07:52 [Note] Event Scheduler: Loaded 0 events
    160304 15:07:52 [Note] /usr/sbin/mysqld: ready for connections.
    Version: '5.5.38-0ubuntu0.14.04.1' socket: '/var/run/mysqld/mysqld.sock' port: 3306 (Ubuntu)

    Having issues blocking XML RPC though...

same problem
I've done everything but not solved.
but
Finally, I solved the problem
try this
https://www.digitalocean.com/community/tutorials/how-to-add-swap-space-on-ubuntu-16-04

One of the easiest way of increasing the responsiveness of your server and guarding against out of memory errors in your applications is to add some swap space. In this guide, we will cover how to add a swap file to an Ubuntu 16.04 server. <$>[warning] [label...
Have another answer? Share your knowledge.