Файл./ib_logfile101: "aio write" вернул ошибку ОС 122
Я пытаюсь установить MySQL 5.6.14 на рабочий стол Ubuntu 12.04:
$ scripts/mysql_install_db --no-defaults --force \
--explicit_defaults_for_timestamp --datadir=/tmp/data
И я получаю:
Installing MySQL system tables...
2013-10-09 09:27:26 6463 [Warning] Buffered warning: Changed limits: max_open_files: 4096 (requested 5000)
2013-10-09 09:27:26 6463 [Warning] Buffered warning: Changed limits: table_cache: 1967 (requested 2000)
2013-10-09 09:27:26 6463 [Note] InnoDB: The InnoDB memory heap is disabled
2013-10-09 09:27:26 6463 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins
2013-10-09 09:27:26 6463 [Note] InnoDB: Compressed tables use zlib 1.2.3
2013-10-09 09:27:26 6463 [Note] InnoDB: Using Linux native AIO
2013-10-09 09:27:26 6463 [Note] InnoDB: Not using CPU crc32 instructions
2013-10-09 09:27:26 6463 [Note] InnoDB: Initializing buffer pool, size = 128.0M
2013-10-09 09:27:26 6463 [Note] InnoDB: Completed initialization of buffer pool
2013-10-09 09:27:26 6463 [Note] InnoDB: The first specified data file ./ibdata1 did not exist: a new database to be created!
2013-10-09 09:27:26 6463 [Note] InnoDB: Setting file ./ibdata1 size to 12 MB
2013-10-09 09:27:26 6463 [Note] InnoDB: Database physically writes the file full: wait...
2013-10-09 09:27:26 6463 [Note] InnoDB: Setting log file ./ib_logfile101 size to 48 MB
2013-10-09 09:27:30 6463 [Note] InnoDB: Setting log file ./ib_logfile1 size to 48 MB
2013-10-09 09:27:31 7fdc6d10b740 InnoDB: Operating system error number 22 in a file operation.
InnoDB: Error number 22 means 'Invalid argument'.
InnoDB: Some operating system error numbers are described at
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/operating-system-error-codes.html
2013-10-09 09:27:31 6463 [ERROR] InnoDB: File ./ib_logfile101: 'aio write' returned OS error 122. Cannot continue operation
Что это может быть? Как решить?
1 ответ
Это означает, что используемая вами файловая система не поддерживает AIO. Вы можете сказать это innodb, добавив следующую строку в my.cnf:
innodb_use_native_aio=0
С этим в my.cnf MySQL должен быть в состоянии начать.
Вышеупомянутое решение не работает для меня. Итак, я добавил следующее в docker-compose как команду
command: "--innodb_use_native_aio=0"
И это работает