Назад | Перейти на главную страницу

Невозможно запустить 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

Однако я не смог найти способ увеличить ulimit. В ящике достаточно памяти для mysql, поэтому я предполагаю, что это просто проблема с пользователем mysql?

Я использую виртуальную машину Xen.

Я бы догадался по сообщению об ошибке, так как 2097168384 подозрительно близко к 2 ^ 31, если вы работаете в 32-битной системе. Попробуйте уменьшить объем памяти, используемый InnoDB в my.cnf, в частности innodb_buffer_pool_sizeи посмотрите, позволит ли это запустить MySQL.

См. Также предупреждение внизу на Конфигурация MySQL InnoDB страница о превышении 2 ГБ.