Bug #61199 mysql_install_db reports wrong path for mysql-test
Submitted: 17 May 2011 13:29 Modified: 13 Dec 2016 13:52
Reporter: Daniël van Eeden Email Updates:
Status: Won't fix Impact on me:
Category:MySQL Server: Installing Severity:S3 (Non-critical)
Version:5.5.8, 5.5.11, 5.6.3 OS:Linux (Red Hat Enterprise Linux 5, RedHat Enterprise Linux 6)
Assigned to: CPU Architecture:Any
Tags: Contribution, rpm

[17 May 2011 13:29] Daniël van Eeden
mysql_install_db reports that you can test mysql with mysql-test-run.pl, but it's not using the correct path.

You can test the MySQL daemon with mysql-test-run.pl
cd $basedir/mysql-test ; perl mysql-test-run.pl

How to repeat:
1. Install MySQL 5.5.8 on RHEL5 using RPM
2. run mysql_install_db --user=mysql
3. Try to run the test using the supplied info. (this will fail)

Suggested fix:
$basedir/mysql-test is used and basedir is /usr.

It's in $basedir/share/mysql-test 

$ rpm -ql MySQL-test-advanced-5.5.8-1.rhel5 | egrep 'mysql-test/mysql-test-run.pl$'
[17 May 2011 13:37] Daniël van Eeden
From cmake/install_layout.cmake:
SET(INSTALL_MYSQLTESTDIR_RPM            "share/mysql-test")
[17 May 2011 13:45] Valeriy Kravchuk
Please, check if the same problem happens with a newer version, 5.5.12.
[17 May 2011 14:26] Daniël van Eeden
Tested with 5.5.12 on RHEL6.

It's also in 5.6.3-m5 from launchpad (verified by code review).

# mysql_install_db --user=mysql
Installing MySQL system tables...
Filling help tables...

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h dveeden-rhel6 password 'new-password'

Alternatively you can run:

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/bin/mysqlbug script!

# cd /usr/mysql-test ; perl mysql-test-run.pl
-bash: cd: /usr/mysql-test: No such file or directory
Can't open perl script "mysql-test-run.pl": No such file or directory
# rpm -ql MySQL-test | egrep 'mysql-test/mysql-test-run.pl$'
# mysqld --version
mysqld  Ver 5.5.12 for Linux on x86_64 (MySQL Community Server (GPL))
# lsb_release -d
Description:	Red Hat Enterprise Linux Server release 6.0 (Santiago)
[17 May 2011 14:32] Daniël van Eeden
Patch for Bug #61199

Attachment: mysql_installdb_testloc.patch (text/x-patch), 587 bytes.

[17 May 2011 14:32] Daniël van Eeden
Patch attached.
[18 May 2011 6:09] Valeriy Kravchuk
Thank you for the bug report and patch contributed. Verified with current mysql-5.5 from bzr by code review.
[19 Feb 2013 2:42] Doug Hendrick
This still exists and the OS should be expanded as I am experiencing it during a recent Mac OS X (Snow Leopard) install of 5.6.10 installed via Homebrew.  The instructions assume you are in /mysql, which would seem to me to be somewhat unusual, especially during setup.  With homebrew the correct instruction should be:

cd /usr/local/opt/mysql/mysql-test ; perl mysql-test-run.pl
[8 Dec 2016 9:56] Yngve Svendsen
Posted by developer:
This is indeed a real bug, but with the time that has passed, the impact is much diminished: Our new style RPMs and Debs on Linux do not use mysql_install_db for any supported MySQL version, MySQL 5.7 and newer do not use mysql_install_db on any platform, and the main delivery vehicle for MySQL on Windows is the new MySQL Installer for Windows, which does not employ mysql_install_db for any version of MySQL. Weighing that against the risk and effort of fixing this properly, I am closing this as Not feasible to fix.