在阿里云服务器上自建mysql遇到的问题。

启动mysqld时报错:

: mmap(10731520 bytes) failed; errno 12
2014-02-23 17:25:32 26854 [ERROR] InnoDB: Cannot allocate memory for the buffer pool
2014-02-23 17:25:32 26854 [ERROR] Plugin 'InnoDB' init function returned error.
2014-02-23 17:25:32 26854 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
2014-02-23 17:25:33 26854 [ERROR] Unknown/unsupported storage engine: InnoDB
2014-02-23 17:25:33 26854 [ERROR] Aborting


网上大多数是让调整my.cnf中innodb_buffer_pool_size的大小,

结果从128调整到了10M,也不管用。


后来在stackoverflow上看到一个问题,人家是在AWS的EC2上架设的mysql,解决方法中提到swap交换分区调整。

http://stackoverflow.com/questions/21446427/mysql-fails-on-restart-innodb-me-alloc-error-12

输入free执行一看,阿里云分的swap为0。于是重新分配了swap文件,然后再次启动mysqld服务,问题解决。



分配swap文件
dd if=/dev/zero of=/swapfile bs=1M count=1024
格式化swap文件
mkswap /swapfile 
激活swap文件
swapon /swapfile 
查看swap文件是否存在
swapon -s
在/etc/fstab中加入下面一行,下次重启服务器也自动加载swap
/swapfile               swap                    swap    defaults        0 0


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值