记一次 mysql 启动没反应

本文记录了一次MySQL启动失败的问题排查过程,由于内存不足导致InnoDB无法分配内存。通过调整MySQL配置文件my.cnf中的参数,成功在有限内存环境下启动了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.youkuaiyun.com/xianglingchuan/article/details/72725346

 

最终找到了解决方法:原址引用: http://blog.youkuaiyun.com/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 ,没什么问题。

转载于:https://www.cnblogs.com/xiaoruilin/p/8413730.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值