1

we have wordpress site & everyday we are getting below error :

error establishing a database connection almost once i a day

than we have to restart mysql server to fix this....

var/log/mysql/mysql.log :

180420 15:00:33 [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.
180420 15:00:33 [Note] Plugin 'FEDERATED' is disabled.
180420 15:00:33 InnoDB: The InnoDB memory heap is disabled
180420 15:00:33 InnoDB: Mutexes and rw_locks use GCC atomic builtins
180420 15:00:33 InnoDB: Compressed tables use zlib 1.2.8
180420 15:00:33 InnoDB: Using Linux native AIO
180420 15:00:33 InnoDB: Initializing buffer pool, size = 64.0M
180420 15:00:33 InnoDB: Completed initialization of buffer pool
180420 15:00:33 InnoDB: highest supported file format is Barracuda.
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
180420 15:00:33  InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
180420 15:00:33  InnoDB: Waiting for the background threads to start
180420 15:00:34 InnoDB: 5.5.40 started; log sequence number 95113383371
180420 15:00:34 [Note] Server hostname (bind-address): '127.0.0.1'; port: 3306
180420 15:00:34 [Note]   - '127.0.0.1' resolves to '127.0.0.1';
180420 15:00:34 [Note] Server socket created on IP: '127.0.0.1'.
180420 15:00:34 [Note] Event Scheduler: Loaded 0 events
180420 15:00:34 [Note] /usr/sbin/mysqld: ready for connections.
Version: '5.5.40-0ubuntu1'  socket: '/var/run/mysqld/mysqld.sock'  port: 3306  (Ubuntu)

/etc/mysql - my.cnf

#
# The MySQL database server configuration file.
#
# You can copy this to one of:
# - "/etc/mysql/my.cnf" to set global options,
# - "~/.my.cnf" to set user-specific options.
# 
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.
#
# For explanations see
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

# This will be passed to all mysql clients
# It has been reported that passwords should be enclosed with ticks/quotes
# escpecially if they contain "#" chars...
# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
[client]
port        = 3306
socket      = /var/run/mysqld/mysqld.sock

# Here is entries for some specific programs
# The following values assume you have at least 32M ram

# This was formally known as [safe_mysqld]. Both versions are currently parsed.
[mysqld_safe]
socket      = /var/run/mysqld/mysqld.sock
nice        = 0

[mysqld]
innodb_buffer_pool_size=64M
#
# * Basic Settings
#
user        = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr
datadir     = /var/lib/mysql
tmpdir      = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address        = 127.0.0.1
#
# * Fine Tuning
#
key_buffer      = 16M
max_allowed_packet  = 16M
thread_stack        = 192K
thread_cache_size       = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover         = BACKUP
#max_connections        = 100
#table_cache            = 64
#thread_concurrency     = 10
#
# * Query Cache Configuration
#
query_cache_limit   = 1M
query_cache_size        = 16M
#
# * Logging and Replication
#
# Both location gets rotated by the cronjob.
# Be aware that this log type is a performance killer.
# As of 5.1 you can enable the log at runtime!
#general_log_file        = /var/log/mysql/mysql.log
#general_log             = 1
#
# Error log - should be very few entries.
#
log_error = /var/log/mysql/error.log
#
# Here you can see queries with especially long duration
#log_slow_queries   = /var/log/mysql/mysql-slow.log
#long_query_time = 2
#log-queries-not-using-indexes
#
# The following can be used as easy to replay backup logs or for replication.
# note: if you are setting up a replication slave, see README.Debian about
#       other settings you may need to change.
#server-id      = 1
#log_bin            = /var/log/mysql/mysql-bin.log
expire_logs_days    = 10
max_binlog_size         = 100M
#binlog_do_db       = include_database_name
#binlog_ignore_db   = include_database_name
#
# * InnoDB
#
# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
# Read the manual for more InnoDB related options. There are many!
#
# * Security Features
#
# Read the manual, too, if you want chroot!
# chroot = /var/lib/mysql/
#
# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
#
# ssl-ca=/etc/mysql/cacert.pem
# ssl-cert=/etc/mysql/server-cert.pem
# ssl-key=/etc/mysql/server-key.pem



[mysqldump]
quick
quote-names
max_allowed_packet  = 16M

[mysql]
#no-auto-rehash # faster start of mysql but no tab completition

[isamchk]
key_buffer      = 16M

#
# * IMPORTANT: Additional settings that can override those from this file!
#   The files must end with '.cnf', otherwise they'll be ignored.
#
!includedir /etc/mysql/conf.d/

when i ran command : zgrep -a "allocate memory" /var/log/mysql/error.log* , i got below result :

enter image description here

Also i ran free -m :

enter image description here

mpm_prefork.conf

<IfModule mpm_prefork_module>
    StartServers             5
    MinSpareServers       5
    MaxSpareServers      10
    #MaxRequestWorkers    150
MaxRequestWorkers 256
MaxConnectionsPerChild 500
    #MaxConnectionsPerChild   0
</IfModule>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

cat /proc/meminfo result :

enter image description here

11
  • 1
    Additional information request, please. Post on pastebin.com or here. Text results of: A) SHOW GLOBAL STATUS; B) SHOW GLOBAL VARIABLES; C) complete MySQLTuner.com report D) SHOW ENGINE INNODB STATUS; Optional very helpful information, if available includes - htop OR top for most active apps, ulimit -a for a linux/unix list of limits, iostat -x when system is busy for an idea of IOPS by device, df -h for a linux/unix free space list by device, free -m for a linux/unix free memory report for HOST server analysis. May 8, 2018 at 20:58
  • 1
    You had 1G swap memory, what did you change it to? Glad you are working fine. If you could up vote my suggestion, that would be great. May 9, 2018 at 10:13
  • 1
    You are way TOO conservative, go for 12G, to ensure you do not get stalled when swap space becomes necessary. May 9, 2018 at 10:21
  • 1
    @WilsonHauck Thanks for suggestion, i will increase it.... also currently site performance is not good, how much ever swap size i increased also , site will not run fast , right ? it need more RAM right ? May 9, 2018 at 10:25
  • 1
    Not so fast on additional RAM, please post additional information requested and I will assist. May 9, 2018 at 10:27

0

You must log in to answer this question.

Browse other questions tagged .