WL#9071: Remove mysql_install_db and server --bootstrap option
Affects: Server-8.0
—
Status: Complete
WL#7307 deprecated the mysql_install_db program and the server --bootstrap option in MySQL 5.7. The task for this WL is to remove mysql_install_db and the server --bootstrap option in MySQL 8.0. This WL will also remove the --install-server option that was temporarily supported to initialize the global DD while external tools still did not use mysqld --initialize. User Documentation ================== Most doc changes here involve removing docs.
There are three basic requirements:
FR1. Remove the 'mysql_install_db' executable and all references to it from
elsewhere. Remove associated MTR tests, unit tests, comments mentioning
it, as well as additional source code used only by that executable.
Rewrite 'mysqld_multi.sh' to use 'mysqld --initialize' for server
initialization.
FR2. Remove the '--install-server' option. As part of the global DD project,
this option was introduced to let external tools initialize the DD while
starting the server without using 'mysql_install_db', and without
interfering with the semantics of the 'bootstrap' option.
FR3. Remove the '--bootstrap' option and all references to it from elsewhere.
Rewrite or remove relevant tests and comments mentioning it.
FR4. Remove the 'mysql-test/lib/v1/mysql-test-run.pl' and other files in the
same directory. This will remove support for MTR_VERSION 1.
There are additional requirements to be implemented outside of this WL:
X-FR1. Remove the man page that is generated for 'mysql_install_db'. This must
be done by the docs team. Until then, we just remove the man page
explicitly when building the packages to avoid errors due to
inconsistency between the specified files and the actual files present.
X-FR2. Remove the usage of 'mysql_install_db' in the NDB autotest code and
replace it by using 'mysqld --initialize'.
1. Remove the mysql_install_db executable
-----------------------------------------
1.1 Remove the 'mysql_instal_db' executable: Remove the source file and the
CMakeLists entry.
1.2 Remove additional source files and headers needed only by the
'mysql_install_db' executable. This applies to client/auth_utils.{h,cc}.
1.3 Remove tests addressing 'mysql_install_db', include files and result files.
This translates into: m_i_db_common.inc, m_i_db_startsvr.inc,
installdb-bad-cipher.result, m_i_db.result, installdb-bad-cipher.test and
m_i_db.test.
1.4 Remove 'mysql_install_db' from the mysql-test-run.pl script. There is an
environment variable defined to the executable's name, being used by the
installdb-bad-cipher test listed above.
1.5 Remove the gunit test 'auth_utils-t' testing the implementation that was
removed in 1.2.
1.6 Rewrite 'mysqld_multi.sh' to use 'mysqld --initialize' for server
initialization.
2. Remove the '--install_server' and '--bootstrap' options
----------------------------------------------------------
2.1 Remove the definitions of the options.
2.2 Remove the 'opt_install_server' and 'opt_bootstrap' variables and their
usage. Replace by 'opt_initialize' when required. Remove the code
implicitly setting 'opt_bootstrap' when 'opt_initialize' is being set.
2.3 Remove or rewrite the mtr tests addressing the option.
2.4 Update various test collection definitions where the 'bootstrap' option is
used.
3. Remove 'mysql-test/lib/v1/mysql-test-run.pl'
-----------------------------------------------
3.1 Remove the entire directory 'mysql-test/lib/v1'.
3.2 Update 'mysql-test/mysql-test-run.pl' to skip calling the removed script,
and print an error message stating that MTR_VERSION=1 is not supported.
Copyright (c) 2000, 2025, Oracle Corporation and/or its affiliates. All rights reserved.