今天重新发布项目到linux中启动之后过了没多久mysql5.6数据库就挂了无法启动,后来通过查看日志文件mysqld.log,发现mysql日志文件中报错误异常,连接池内存不足,具体错误信息如下:
2015-08-17 13:04:49 1516 [Note] InnoDB: Using atomics to ref count buffer pool pages 2015-08-17 13:04:49 1516 [Note] InnoDB: The InnoDB memory heap is disabled 2015-08-17 13:04:49 1516 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2015-08-17 13:04:49 1516 [Note] InnoDB: Memory barrier is not used 2015-08-17 13:04:49 1516 [Note] InnoDB: Compressed tables use zlib 1.2.3 2015-08-17 13:04:49 1516 [Note] InnoDB: Using Linux native AIO 2015-08-17 13:04:49 1516 [Note] InnoDB: Using CPU crc32 instructions 2015-08-17 13:04:49 1516 [Note] InnoDB: Initializing buffer pool, size = 64.0M InnoDB: mmap(68681728 bytes) failed; errno 12 2015-08-17 13:04:49 1516 [ERROR] InnoDB: Cannot allocate memory for the buffer pool 2015-08-17 13:04:49 1516 [ERROR] Plugin 'InnoDB' init function returned error. 2015-08-17 13:04:49 1516 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 2015-08-17 13:04:49 1516 [ERROR] Unknown/unsupported storage engine: InnoDB 2015-08-17 13:04:49 1516 [ERROR] Aborting
问题分析:
检查内存剩余情况,发现内存不足导致。
具体如何查看内存情况参考地址:http://blog.yoodb.com/yoodb/article/detail/1009
本人的内存使用情况,执行命令free -m,具体如下:
[root@iZ256w2hluuZ log]# free -m total used free shared buffers cached Mem: 994813180 0 9 54 -/+ buffers/cache:750244 Swap: 0 0 0
解决方法:
打开my.cnf mysql配置文件,如果不知道文件地址,使用命令如下:
[root@iZ256w2hluuZ log]# find / -name my.cnf /usr/my.cnf /etc/my.cnf
执行vim /etc/my.cnf命令,将innodb_buffer_pool_size参数值调小即可。
innodb_buffer_pool_size = 64M max_connections = 200 wait_timeout = 1440
重启mysql数据库,命令如下:
service mysqld restart 或 service mysql restart
注意:mysql安装时一般innodb_buffer_pool_size参数默认64mb或128mb,修改重启就可以了。