Ответ 1
У меня те же проблемы, это мое решение:
-
Добавить RAM на сервер
-
Уменьшить значение размера пула innodb-buffer в файле конфигурации
/etc/mysql/my.cnf
:innodb_buffer_pool_size = 10M
После сохранения my.cnf
перезапустите службу mysql.
Я нашел много похожих вопросов в Stackoverflow, но не получил точное решение ошибки. Моя проблема заключается в запуске службы MySQL на одном из компьютеров Dedicated Centos 6.5, я получаю сообщение об ошибке:
141018 05:13:46 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
141018 5:13:47 [Warning] Can't create test file /var/lib/mysql/ip-184-168-73-83.lower-test
141018 5:13:47 [Warning] Can't create test file /var/lib/mysql/ip-184-168-73-83.lower-test
/usr/libexec/mysqld: Can't create/write to file '/tmp/ibkTWnhE' (Errcode: 28)
141018 5:13:48 InnoDB: Error: unable to create temporary file; errno: 28
141018 5:13:48 [ERROR] Plugin 'InnoDB' init function returned error.
141018 5:13:48 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
141018 5:13:48 [ERROR] Can't start server : Bind on unix socket: No space left on device
141018 5:13:48 [ERROR] Do you already have another mysqld server running on socket: /var/lib/mysql/mysql.sock ?
141018 5:13:48 [ERROR] Aborting
141018 5:13:48 [Note] /usr/libexec/mysqld: Shutdown complete
141018 05:13:48 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
Вот бесплатный статус команды: free -m
total used free shared buffers cached
Mem: 3743 3631 111 0 2705 21
-/+ buffers/cache: 905 2838
Swap: 2047 0 2047
У меня те же проблемы, это мое решение:
Добавить RAM на сервер
Уменьшить значение размера пула innodb-buffer в файле конфигурации
/etc/mysql/my.cnf
:
innodb_buffer_pool_size = 10M
После сохранения my.cnf
перезапустите службу mysql.
Это часто происходит. Сделайте следующее -
Это должно решить проблему; на самом деле это сработало для меня.
Хотя и поздно, но выкладываю ответ здесь, чтобы помогшее мне решение могло кому-то помочь. Я предпринял следующие шаги:
Пример добавления в my.cnf:
innodb_buffer_pool_size = 10M
innodb_log_file_size = 1000M
Я попал ниже журнала ошибок mysql: -
[Note] Plugin 'FEDERATED' is disabled.
InnoDB: The InnoDB memory heap is disabled
InnoDB: Mutexes and rw_locks use GCC atomic builtins
InnoDB: Compressed tables use zlib 1.2.3
InnoDB: Using Linux native AIO
InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: mmap(137363456 bytes) failed; errno 12
InnoDB: Completed initialization of buffer pool
InnoDB: Fatal error: cannot allocate memory for the buffer pool
[ERROR] Plugin 'InnoDB' init function returned error.
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[ERROR] Unknown/unsupported storage engine: InnoDB
[ERROR] Aborting
[Note] /usr/libexec/mysqld: Shutdown complete
Я обнаружил, что есть два решения: -
1) Установите innodb_log_file_size равным фактическому размеру существующих файлов журнала InnoDB. Чтобы узнать, какой размер журнала innoDB выделен, войдите в mysql и введите следующий cmd: -
SHOW GLOBAL VARIABLES LIKE 'innodb_log_file_size';
Ожидаемый результат: - 5242880
После этого вставьте это значение в my.cnf: - vi/etc/my.cnf
innodb_log_file_size =5242880
2) Переименуйте или переместите файлы. /ib _logfile0 и./ib_logfile1, а затем запустите сервер MySQL. Обычно это будет находиться в /var/lib/mysql. После запуска mysql он создает новый файл журнала innoDB и восстанавливает возможные полузаписанные данные из файла .ibd.
Пример примера mysql expexted: -
InnoDB: Database physically writes the file full: wait...
161216 9:58:54 InnoDB: Log file ./ib_logfile1 did not exist: new to be created
InnoDB: Setting log file ./ib_logfile1 size to 5 MB
InnoDB: Database physically writes the file full: wait...
161216 9:58:54 InnoDB: highest supported file format is Barracuda.
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
161216 9:58:54 InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Reading tablespace information from the .ibd files...
InnoDB: Restoring possible half-written data pages from the doublewrite
InnoDB: buffer...
161216 9:58:54 InnoDB: Waiting for the background threads to start
161216 9:58:55 InnoDB: 5.5.50 started; log sequence number 1589772
161216 9:58:55 [Note] Server hostname (bind-address): '0.0.0.0'; port: 3306
161216 9:58:55 [Note] - '0.0.0.0' resolves to '0.0.0.0';
161216 9:58:55 [Note] Server socket created on IP: '0.0.0.0'.
161216 9:58:55 [Note] Event Scheduler: Loaded 0 events
161216 9:58:55 [Note] /usr/libexec/mysqld: ready for connections.
Version: '5.5.50' socket: '/var/lib/mysql/mysql.sock' port: 3306 MySQL Community Server (GPL) by Remi
Литература: - ЮСТИН КУЛЕСА (2011). MySQL: Ошибка регистрации InnoDB в качестве механизма хранения. Доступно по адресу: https://spin.atomicobject.com/2011/05/09/mysql-failed-registration-of-innodb-as-a-storage-engine/.
RolandoMySQLDBA (2014). MySQL my.cnf: innodb_log_file_size отсутствует. Доступно по адресу: https://dba.stackexchange.com/info/75688/mysql-my-cnf-innodb-log-file-size-is-missing/158325#158325
Изменение количества или размера файлов журнала повторного использования InnoDB. Доступно по адресу: http://dev.mysql.com/doc/refman/5.7/en/innodb-data-log-reconfiguration.html