danvega
By:
danvega

MySQL keeps crashing - Error establishing a database connection

March 4, 2016 3.7k 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!

1 Answer

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...

Have another answer? Share your knowledge.