由于无法分配内存,无法启动 mysqld

由于无法分配内存,无法启动 mysqld

由于无法分配足够的内存,我无法启动 mysqld。

我已经使用默认设置安装了数据库:

sudo mysql_install_db --user=mysql

然后,当我尝试启动 mysqld 时,我得到了这个:

name@host:/var/lib/mysql$ sudo mysqld --user=mysql
110307 16:01:21 InnoDB: Error: cannot allocate 2097168384 bytes of
InnoDB: memory with malloc! Total allocated memory
InnoDB: by InnoDB 35494096 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
110307 16:02:21 [ERROR] Default storage engine (InnoDB) is not available
110307 16:02:21 [ERROR] Aborting

不过,我还没能找到增加 ulimits 的方法。该机器有足够的内存供 mysql 使用,所以我猜想这只是 mysql 用户的问题?

我正在使用 Xen VM。

答案1

我从错误消息中猜测,由于2097168384非常接近 2^31,因此您正在 32 位系统上运行。尝试减少 my.cnf 中 InnoDB 使用的内存量,特别是innodb_buffer_pool_size,看看这是否允许 MySQL 启动。

另请参阅MySQL InnoDB 配置页面大小超过 2GB。

相关内容