Bug #80346 missing scripts/mysql_install_db in MySQL 5.7
Submitted: 12 Feb 2016 4:58 Modified: 28 Feb 2016 20:46
Reporter: Justin Swanhart Email Updates:
Status: Not a Bug Impact on me:
None 
Category:MySQL Server: Packaging Severity:S1 (Critical)
Version:5.7 OS:Any
Assigned to: CPU Architecture:Any

[12 Feb 2016 4:58] Justin Swanhart
Description:
DBAs are used to installing MySQL using mysql_instal_db.  This script is completely missing in MySQL 5.7.  There isn't even a simple script that echoes "please use mysqld --initialize" but seriously, scripts/mysql_install_db should just be a WRAPPER around mysqld --initialize in 5.7.  If necessary add a command line option to bin/mysqld --initialize-only such that the database starts, creates the mysql/ datadir and files and then exits.

How to repeat:
try to run the missing script!

Suggested fix:
Add mysqld --initialize-only and create scripts/mysql_install_db as a wrapper around it!
[12 Feb 2016 5:08] Justin Swanhart
it seems it is in bin/ but for f*cks sake, make a scripts/ dir and make a symlink.  For /automations/ sake!
[12 Feb 2016 5:13] Valeriy Kravchuk
I was searching for this (mysql_install_db is now in bin/ and needs options to work as before, "insecure") in some "Incompatible changes" texts, but found nothing.

So, would you mind to fix the manual page also, https://dev.mysql.com/doc/refman/5.7/en/upgrading-from-previous-series.html ?
[12 Feb 2016 5:28] MySQL Verification Team
Hello Justin,

Thank you for the bug report.
As of 5.7.5, mysql_install_db is written in C++ and supplied in binary distributions as an executable binary. You can find it inside bin/ in the tarbal binary distribution(( Before MySQL 5.7.5, mysql_install_db is a Perl script and found under scripts/)). 

This is documented here - https://dev.mysql.com/doc/refman/5.7/en/mysql-install-db.html

On my 5.7.11 tarball build:

[umshastr@hod03]/export/umesh/server/binaries/mysql-5.7.11: ls -l bin/mysql_install_db
-rwxr-xr-x 1 umshastr common 9468583 Feb  2 01:04 bin/mysql_install_db

-- To initialize

[umshastr@hod03]/export/umesh/server/binaries/mysql-5.7.11: bin/mysql_install_db --insecure --basedir=/export/umesh/server/binaries/mysql-5.7.11 --datadir=/export/umesh/server/binaries/mysql-5.7.11/80240 -v
2016-02-12 06:21:33 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize

^^ it warns mysql_install_db is deprecated

Thanks,
Umesh
[12 Feb 2016 5:29] MySQL Verification Team
Thanks Valeriy, Justin.. I guess I took time to post :)
[12 Feb 2016 5:35] MySQL Verification Team
Imho https://dev.mysql.com/doc/refman/5.7/en/upgrading-from-previous-series.html has a note "In addition to the changes outlined in this section, review the Release Notes" and 5.7.5 release note has details about this change - https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-5.html
[12 Feb 2016 9:14] Valeriy Kravchuk
See Bug #80351 I've reported for the documentation part.
[28 Feb 2016 20:46] Justin Swanhart
Sigh.  What part of making a symlink is so difficult?  Why should I have to have different automation for 5.7?