Bug #98212 Incomplete documentation of `innodb_data_file_path`
Submitted: 13 Jan 2020 22:20 Modified: 27 Aug 2020 12:41
Reporter: Saverio Miroddi Email Updates:
Status: Closed Impact on me:
Category:MySQL Server: Documentation Severity:S3 (Non-critical)
Version:8.0.18 OS:Any
Assigned to: CPU Architecture:Any

[13 Jan 2020 22:20] Saverio Miroddi
The documentation of both MySQL 5.7 and 8.0 states that:

> InnoDB forms the directory path for each data file by textually concatenating
> the value of innodb_data_home_dir to the data file name. If innodb_data_home_dir
> is not defined, the default value is “./”, which is the data directory.
> If you specify innodb_data_home_dir as an empty string, you can specify absolute
> paths for data files listed in the innodb_data_file_path value. The following
> configuration is equivalent to the preceding one

This is exact for MySQL 5.7, however, I've (surprisingly) found that in MySQL, there is no requirement for specifying `innodb_data_file_path` as absolute file path.

How to repeat:
This configuration won't work in 5.7, but will in 8.0:

datadir                   = /path/to/mysql_data
innodb_data_home_dir      = /path/to/innodb_data/
innodb_data_file_path     = /dev/shm/mysql_logs/ibdata1:12M:autoextend

after initialization, one can observe:

~$ ls -1 /path/to/mysql_data/ib*
~$ ls -1 /path/to/innodb_data/ib*
~$ ls -1 /dev/shm/mysql_logs/ib*

Suggested fix:
Just update the documentation. The possibilty to keep the InnoDB data separate from the Innodb system tablesapce is actually very interesting.
[13 Jan 2020 23:20] MySQL Verification Team
Thank you for the bug report.
[27 Aug 2020 12:41] Daniel Price
Posted by developer:
In MySQL 8.0, textual concatenation no longer occurs if an absolute path is specified for innodb_data_file_path, and an absolute path is permitted without specifying an empty string for innodb_data_home_dir.

The referenced documentation has been revised. Changes should appear online soon.

Thank you for the bug report.