I managed to get mysqld to run in this context using strace. (Aside - took a bit of trickery using a secondary script, because although mysql_install_db lets you choose the program to run for mysqldb it is quoted and so you cant just use 'strace mysqld' as the exec) pwrite(7, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 1048576, 49283072) = 1048576 fsync(7) = 0 close(7) = 0 open("./ibdata1", O_RDWR) = 7 fcntl(7, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0}) = 0 getcwd("/var/lib/mysql", 4096) = 15 open("./ib_logfile101", O_RDWR|O_SYNC|0x100000) = 12 fcntl(12, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0}) = 0 getcwd("/var/lib/mysql", 4096) = 15 open("./ib_logfile1", O_RDWR|O_SYNC|0x100000) = 13 fcntl(13, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0}) = 0 getcwd("/var/lib/mysql", 4096) = 15 pwrite(12, "\0\0\0\0\0\0\0\0\0\0\"\0\0\0\0\0 \0\0\0\0\0\0\0\0\0\0\0\0"..., 512, 0) = 512 pwrite(12, "\200\0\0\22\0\f\0\f\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 512, 2048) = 512 time(NULL) = 1392552763 io_submit(140435475795968, 1, {...}) = -1 EINVAL (Invalid argument) time([1392552763]) = 1392552763 write(2, "2014-02-16 22:42:43 7fb9aea4d780", 322014-02-16 22:42:43 7fb9aea4d780) = 32 According to man io_submit: EINVAL The AIO context specified by ctx_id is invalid. nr is less than 0. The iocb at *iocbpp[0] is not properly initialized, or the operation specified is invalid for the file descriptor in the iocb. There are other calls to io_submit further back in the strace that succeed. As far as I can tell this call is made on line approx 4461 of storage/innobase/os/os0file.cc Having not used aio before my debugging kind of stops there...