Bug 160679

Summary: databases/mysql55-server appears to fail to install with normal /var/db/mysql directory set; DB init fails
Product: Ports & Packages Reporter: Jim D. <randomnoise058>
Component: Individual Port(s)Assignee: Alex Dupre <ale>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   

Description Jim D. 2011-09-12 15:50:05 UTC
a) apparent /var/db/mysql default directory not defined to installed MySQL

mysql_install_db --user mysql

FATAL ERROR: Could not find ./bin/my_print_defaults

If you compiled from source, you need to run 'make install' to
copy the software into the correct location ready for operation.

If you are using a binary release, you must either be at the top
level of the extracted archive, or pass the --basedir option
pointing to that location.



b) MySQL DB initialization fails [using explicit directory parms due to a)]

mysql_install_db --user mysql --datadir=/var/db/mysql --ldata=/var/db/mysql --srcdir=/usr/ports/databases/mysql55-server/work/mysql-5.5.15

Installing MySQL system tables...
ERROR: 1049  Unknown database 'mysql'
110909 17:13:04 [ERROR] Aborting

110909 17:13:04 [Note] /usr/ports/databases/mysql55-server/work/mysql-5.5.15/sql/mysqld: Shutdown complete


Installation of system tables failed!  Examine the logs in
/var/db/mysql for more information.

You can try to start the mysqld daemon with:

    shell> /usr/ports/databases/mysql55-server/work/mysql-5.5.15/sql/mysqld --skip-grant &

and use the command line tool /usr/ports/databases/mysql55-server/work/mysql-5.5.15/client/mysql
to connect to the mysql database and look at the grant tables:

    shell> /usr/ports/databases/mysql55-server/work/mysql-5.5.15/client/mysql -u root mysql
    mysql> show tables

Try 'mysqld --help' if you have problems with paths.  Using --log
gives you a log in /var/db/mysql that may be helpful.

Please consult the MySQL manual section
'Problems running mysql_install_db', and the manual section that
describes problems on your OS.  Another information source are the
MySQL email archives available at http://lists.mysql.com/.

Please check all of the above before mailing us!  And remember, if
you do mail us, you MUST use the /usr/ports/databases/mysql55-server/work/mysql-5.5.15/scripts/mysqlbug script!

c) MySQL userid definitions

grep mysql /etc/passwd /etc/group
/etc/passwd:mysql:*:88:88:MySQL Daemon:/var/db/mysql:/usr/sbin/nologin
/etc/group:mysql:*:88:

d) DB init creates two empty directories:

/var/db/mysql/mysql
/var/db/mysql/test
Comment 1 Edwin Groothuis freebsd_committer freebsd_triage 2011-09-12 15:50:15 UTC
Responsible Changed
From-To: freebsd-ports-bugs->ale

Over to maintainer (via the GNATS Auto Assign Tool)
Comment 2 Chris Rees 2011-09-12 21:35:34 UTC
Hm, this *might* be due to the USERS modification I wrote for the port. If
you think it is please feel free to bounce the PR to me.

Chris
Comment 3 Alex Dupre freebsd_committer freebsd_triage 2011-09-13 15:59:31 UTC
State Changed
From-To: open->closed

Use or look at the rc.d script.
Comment 4 Jim D. 2011-09-21 01:14:17 UTC
Is there a package message that indicates this change in initialization
process? I did not see one. If not - then there should be one included
with this port. I have been installing MySQL for years (BSD and Solaris)
and have always had to perform the DB initialization process. Various
MySQL manuals also describe the DB initialization process "as it used to
be".