Я не могу запустить 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 ГБ.