[MYSQL] ERROR: cannot allocate the memory for the buffer pool

突然间,机器上的Mysql不能启动了,查看日志发现,INNODB报这样错误:

090819 10:45:09  InnoDB: Error: cannot allocate 2147500032 bytes of
InnoDB: memory with malloc
! Total allocated memory
InnoDB: by InnoDB 
35493848 bytes. Operating system errno: 12
InnoDB: Check 
if you should increase the swap file or
InnoDB: ulimits of your operating system.
InnoDB: On FreeBSD check you have compiled the OS with
InnoDB: a big enough maximum 
process size.
InnoDB: Note that 
in most 32-bit computers the process
InnoDB: memory space is limited to 
2 GB or 4 GB.
InnoDB: We keep retrying the allocation 
for 60 seconds
InnoDB: Fatal error: cannot allocate the memory 
for the buffer pool
090819 10:46:09 [ERROR] Plugin 'InnoDB' init function returned error.
090819 10:46:09 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
090819 10:46:09 [Note] /usr/local/webserver/mysql/libexec/mysqld: Normal shutdown

090819 10:46:09 [Warning] 'user' entry 'root@zhangyufeng' ignored in --skip-name-resolve mode.
090819 10:46:09 [Warning] 'user' entry '@zhangyufeng' ignored in --skip-name-resolve mode.
090819 10:46:09 [Note] Event Scheduler: Loaded 0 events
090819 10:46:09 [Note] /usr/local/webserver/mysql/libexec/mysqld: ready for connections.
Version: '
5.1.32-log'  socket: '/tmp/mysql.sock'  port: 3306  Source distribution
090819 10:46:09 [Note] Event Scheduler: Purging the queue. 0 events
090819 10:46:09 [Note] /usr/local/webserver/mysql/libexec/mysqld: Shutdown complete

我一开始以为是innoDB的扩展坏掉了,于是重新编译安装了mysql,后来才发现,原来是配置文件中
innodb_buffer_pool_size 设置的值过大了,(我设置了2048M) 呵呵 ,缓冲池过大了,原来没有

出错是因为我没开大的应用,我机器内存是4G,现在跑了个虚拟机后,内存剩余就不足了。

posted @ 2009-08-19 11:07  玉米疯收  阅读(5168)  评论(0编辑  收藏  举报