Okay, now it's clear. Thanks for the report.
Yes, the problem you encountered is https://bugs.mysql.com/bug.php?id=69441. It's been fixed in MySQL 5.7, and the fix needs to be merged to MariaDB 10.x (or re-done, if it's not good enough).
For a note, while experimenting with it, I've found another issue with mysql_install_db processing ignore_db_dirs.
If the option is provided on the command line, even once and without any default files involved, it causes the exact same error
scripts/mysql_install_db --no-defaults --ignore-db-dir=xxxx
|
Installing MariaDB/MySQL system tables in './data' ...
|
2016-04-22 19:46:50 140679461701504 [Note] ./bin/mysqld (mysqld 10.1.13-MariaDB) starting as process 17497 ...
|
2016-04-22 19:46:50 140679461701504 [ERROR] An error occurred while storing ignore_db_dirs to a hash.
|
2016-04-22 19:46:50 140679461701504 [ERROR] Aborting
|
It happens because while preparing the bootstrap command line, mysql_install_db goes through the arguments twice, so they end up being duplicated on final command line:
> scripts/mysql_install_db --no-defaults --ignore-db-dir=xxxx --lock-wait-timeout=5
|
./bin/mysqld --no-defaults --lc-messages=en_US --bootstrap --basedir=. --datadir=./data --log-warnings=0 --enforce-storage-engine= --ignore-db-dir=xxxx --lock-wait-timeout=5 --ignore-db-dir=xxxx --lock-wait-timeout=5 --max_allowed_packet=8M --net_buffer_length=16K
|
The specific problem with ignore-db-dir will disappear after the server part is fixed, but still providing duplicate options is not good, so it would be useful to fix the script as well.
In MySQL 5.6 it was fixed apparently when mysql_install_db was rewritten in Perl.
Please check if any files in /etc/my.cnf.d also contain the same setting.