记一次 mysql 启动没反应

 记一次 mysql 启动没反应 ,重启linux又可以启动

vim /var/log/mysqld.log

2018-02-04 13:22:49 28507 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2018-02-04 13:22:49 28507 [ERROR] Plugin 'InnoDB' init function returned error.
2018-02-04 13:22:49 28507 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2018-02-04 13:22:49 28507 [ERROR] Unknown/unsupported storage engine: InnoDB
2018-02-04 13:22:49 28507 [ERROR] Aborting

https://stackoverflow.com/questions/25965638/mysql-fatal-error-cannot-allocate-memory-for-the-buffer-pool

http://blog.csdn.net/xianglingchuan/article/details/72725346

 

最终找到了解决方法:原址引用: http://blog.csdn.net/qq648472886/article/details/78936040

于是继续,来看看内存占用情况:

 

[plain] view plain copy
 
  1. <span style="font-size:18px;">[root@iZuzc9f4ma6h2iZ ~]# free -m  
  2.               total        used        free      shared  buff/cache   available  
  3. Mem:            992         435         413           1         142         403  
  4. Swap:             0           0           0</span>  

 

显然,结果很磕馋。内存仅413M,而且没有 Swap 分区。

那么问题来了,mysql 启动到底需要多少内存?

官网是这什么回答的:

 

How MySQL Uses Memory


MySQL allocates buffers and caches to improve performance of database operations. The default configuration is designed to permit a MySQL server to start on a virtual machine that has approximately512MB of RAM. You can improve MySQL performance by increasing the values of certain cache and buffer-related system variables. You can also modify the default configuration to run MySQL on systems with limited memory.

于是,那么有什么办法可以小内存启动 mysql 吗?

答案是有,

vim /etc/my.cnf

添加:

performance_schema_max_table_instances=200
table_definition_cache=200
table_open_cache=128

ok,再次运行 service mysqld restart ,没什么问题。

posted @ 2018-02-04 17:47  三瑞  阅读(614)  评论(0编辑  收藏  举报