Encontrei chamadas semelhantes no código do Akonadi e comecei a criar os comandos do zero enquanto consultava os respectivos textos de ajuda. Parece que eu acabei de incluir opções inúteis / contraproducentes antes. Isso agora funcionou para mim:
mysql_install_db \
--defaults-file=/dev/null \ # don't user my.cnf in /etc/ or ~/
--datadir=/home/daniel/tmp/mysql/ \ # use given directory for data
--force # make mysqld work without /usr/bin/resolveip
Parece que preciso apenas de 1 diretório para dados. A configuração de basedir
só funciona se você fornecer uma instalação completa do MySQL.
Depois disso, eu posso rodar o servidor MySQL:
mysqld \
--defaults-file=/dev/null \ # as above
--datadir=/home/daniel/tmp/mysql/ \ # as above
--socket=/home/daniel/tmp/socket \ # use writable socket
--skip-networking # for my purposes: only socket connections