Bug #25008 Mac OS X's StartupItem does not work
Submitted: 12 Dec 2006 15:25 Modified: 2 Apr 20:44
Reporter: Frédéric Brussel
Status: Closed
Category:Server: Installing Severity:S3 (Non-critical)
Version:5.0.27, 5.0.41 OS:Mac OS X (Mac OS X 10.4.8)
Assigned to: Kent Boortz Target Version:5.0+
Tags: Mac OS X, startup, server, start, automatically, preference pane
Triage: D3 (Medium)

[12 Dec 2006 15:25] Frédéric Brussel
Description:
In Mac OS X's preferences for MySQL, there's a "Automatically start MySQL Server on
startup" checkbox. When this option is checked (activated), the MySQL Server does NOT
start automatically after reboot or simply after starting up the computer. You always need
to start up the server manually.

How to repeat:
Always
[21 Dec 2006 21:18] Sveta Smirnova
Thank you for the report.

I can not repeat it on Intel Mac.
[22 Mar 2007 15:22] [ name withheld ]
I have this same issue on a MacBook Pro running Tiger 10.4.9.
[31 Mar 2007 11:43] Mark W
I too cannot automatically start the MYSQL server under MAC OSX 10.4.9 (Macbook, Intel
core 2 duo).

Did some rummaging around, and I cannot find the MySQLCOM startup item in the
/Library/Startupitems. The correct MYSQLCOM=-YES- is in hostconfig.....but I guess if the
thing isn't where it should be.......
[11 Apr 2007 12:06] Sveta Smirnova
Thank you for the feedback.

Please upgrade to current 5.0.37 Community or 5.0.38 Enterprise and try again.
[18 Apr 2007 4:08] Albert Madrilejos
I am using an Intel Mac Mini with MySQL version 5.0.37 on Mac OS X 10.4.9.  I am also
trying to get automatic startup with MySQL but with no avail.  Has this bug been fixed
yet?  The last comment was recommending to update to 5.0.37 but there has been no changes
in this being fixed.

Any other recommendations.  Is there a way to manually do this with out the pref pane: an
alternative?
[19 Apr 2007 8:30] Mark W
I am still running 5.0.27 under OSX 10.4.9. However, I was not happy about upgrading just
to get the autostart to work, since I wanted to keep this version as it is synched
(version wise with a couople of other servers). I did however re-install the startup.pkg
from the latest release and all is now well.

Yes, you could use a shell script to automatically start MYSQL on boot-up.
[12 May 2007 1:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
[30 Jul 2007 10:15] Andrew Montague
This is still a problem for me with 5.0.41 on Tiger 10.4.10.
[30 Jul 2007 10:35] Sveta Smirnova
Thank you for the feedback.

Please provide output of command `id` running as user you try to start/stop MySQL as. Also
provide output of command `cat /var/log/secure.log | grep MySQL`
[31 Jul 2007 8:30] Andrew Montague
Here is the information you were looking for:
iMac:~ andrew$ id
uid=501(andrew) gid=501(andrew) groups=501(andrew), 80(admin)
iMac:~ andrew$ cat /var/log/secure.log | grep MySQL
Jul 30 08:51:13 iMac com.apple.SecurityServer: Succeeded authorizing right
com.mysql.administrator.server by process
/Library/PreferencePanes/MySQL.prefPane/Contents/Resources/mahelper for authorization
created by /Applications/System Preferences.app.
Jul 31 07:22:31 iMac com.apple.SecurityServer: Succeeded authorizing right
com.mysql.administrator.server by process
/Library/PreferencePanes/MySQL.prefPane/Contents/Resources/mahelper for authorization
created by /Applications/System Preferences.app.
[31 Jul 2007 9:18] Sveta Smirnova
Thank you for the feedback.

Please also provide MySQL error log.
[31 Jul 2007 11:19] Andrew Montague
Where do I find the MySQL error logs?
[31 Jul 2007 11:22] Sveta Smirnova
In the data directory. You have to turn it on first as described at
http://dev.mysql.com/doc/refman/5.0/en/error-log.html
[31 Jul 2007 11:53] Andrew Montague
The instructions on that page aren't clear to me. They say: "You can specify where mysqld
writes the error log with the --log-error[=file_name] option". What command do I use with
this option?

Thanks
Andrew
[31 Jul 2007 12:00] Sveta Smirnova
Please read how you can specify startup options at
http://dev.mysql.com/doc/refman/5.0/en/server-options.html
[31 Jul 2007 13:31] Andrew Montague
Here's the error log:
070731 12:27:19  mysqld started
070731 12:27:19 [Warning] Setting lower_case_table_names=2 because file system for
/usr/local/mysql/data/ is case insensitive
070731 12:27:19  InnoDB: Started; log sequence number 0 43655
070731 12:27:20 [Note] /usr/local/mysql/bin/mysqld: ready for connections.
Version: '5.0.41'  socket: '/tmp/mysql.sock'  port: 3306  MySQL Community Server (GPL)
[8 Aug 2007 17:56] John Gregory
I too have this problem on 5.0.45
[27 Aug 2007 22:21] Jessica Anderson
I have the same problem. In my system prefs, I hit the start MySQL Server button and it
prompted me for my password and it is still saying "stopped." I also restarted since I
have the auto startup checked and nothing. 

I then went to terminal and typed in the following and it seemed to start:
sudo /Library/StartupItems/MySQLCOM/MySQLCOM start

WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.

To proceed, enter your password, or type Ctrl-C to abort.

Password:
Starting MySQL database server

But when I enter: /usr/local/mysql/bin/mysql
tcsh: /usr/local/mysql/bin/mysql: Bad CPU type in executable.

What am I doing wrong? I am very new to this so please be kind.
[8 Sep 2007 0:53] JCB USA
I ran into a similar issue with MySQL 5.0.45 not starting consistantly (40% of the time it
would startup after a reboot) on OS X 10.4.10.  If I manually run the StartupItem
(/Library/StartupItems/MySQLCOM/MySQLCOM start) after the machine is running MySQL starts
and runs just fine.

The key is the location of the MySQL datadir.  In /etc/my.cnf I specified the following
datadir under the [mysqld] heading:
datadir = /Volumes/XRAID/mysql/data (where XRAID is a Fibre Channel XRAID array)

It appears that a PPC XServer does not mount a XRAID fast enough for the mysql data to be
accessed by the StartupItem.

A simple solution is to put "sleep 30" in the MySQLCOM StartupItem before it runs $SCRIPT
start.

Another solution is to loop until the XRAID is accessible.
while ! [ -e /Volumes/XRAID/mysql/data ] do
   sleep 1
done

Hope this helps those who are running MySQL with a datadir on a external drive.
[8 Nov 2007 22:59] V C
I'm having the same problem.  Preference pane will start and stop the server but will not
auto start on reboot even with this option checked.
[2 Feb 19:41] Yves Forget
Just installed 5.0.51a with the package installer.

The mysql package installed correctly, but the mysqlStartupItems tells that it terminated
normally, but it did not create anything under /Library/StartupItems.

I'm running OS X 10.5.1 on a intel core 2 duo (Mac Mini 2Ghz)

Yves
[7 Feb 8:54] Jun T.
The MySQLStartupItem.pkg in mysql-5.0.51a-osx10.4-i686.dmg is virtually empty and installs
nothing (in /Library/StartupItems/ or wherever else).

$ cd /Volumes/mysql-5.0.51a-osx10.4-i686/MySQLStartupItem.pkg/Contents
$ lsbom Archive.bom
.       40755   0/0
$ pax -z -f Archive.pax.gz 
.
$ cat Resources/MySQLStartupItem.sizes 
NumFiles 0
InstalledSize 0
CompressedSize 0

This may be just a bug, or should we abandon StartupItems and switch to launchd plist?
[7 Feb 10:14] Andrew Lindley
To duplicate my comment to Bug #20124 as it may be relevant.

Installing mysql-5.0.51a.osx10.4-powerpc.dmg on Leopard 10.5.1 I find that the MySQLCOM
directory has been installed under /usr/local not /System/Library/StartupItems or
/Library/StartupItems . Using Terminal to mv the directory under
/System/Library/StartupItems causes MySQL to run on boot as per the prefs pane. However,
the prefs pane cannot start/stop mysql independently of this. Has the .pkg (and possibly
the prefs pane) been built with incorrect file paths in it's configuration?
[7 Feb 11:10] Jun T.
Thank you Andrew,

Yes, mysql-5.0.51a-osx10.4-i686.pkg (NOT MySQLStartupItem.pkg) does install MySQLCOM under
/usr/local/. If I move it to /Library/StartupItems/ then everything works as expeced.

Andrew Lindley writes:
>However, the prefs pane cannot start/stop mysql independently of this.

It works in my case.
MacOS 10.4.11, intel iMac
[13 Feb 4:53] Yves Forget
Hi again,

I moved MySQLCOM from /usr/local to /System/Library/StartupItems.

Now MySQL starts automatically.

The Preferences Panel correctly shows the active status, but the "start Mysql" and "stop
mysql" don't work.

Yves
[13 Feb 21:58] Andrew Lindley
Yves,

I found this alternate (open source) Preferences Pane which works for me.

http://creativeeyes.at/tools/mysqlpp.php

Andrew (ordinary MySQL user)
[22 Feb 17:45] Sveta Smirnova
Thank you for the report.

Verified as described with version 5.0.51a. To repeat remove prefPane before installing
new package.
[7 Mar 8:47] Mattias Jonsson
I have tested a non released mysql-enterprise-gpl-5.0.58-osx10.4-powerpc.dmg package which
both includes the working MySQL.prefPane and a working StartupItem.pkg. I will update this
bug when I know in which versions it will be released in.

The bug was that the MySQLStartupItem.pkg did not contain the
/Library/StartupItems/MySQLCOM (instead it was located as /usr/local/MySQLCOM in the
mysql-<server>.pkg)

Until then, the working MySQL.prefPane for Mac OS X 10.5 (Bug#28854) is here:
ftp://ftp.mysql.com/pub/mysql/download/gui-tools/MySQL.prefPane-leopardfix.zip

and to get the StartupItem to work, copy or move the (if existent) /usr/local/MySQLCOM
directory to /Library/StartupItems/MySQLCOM
[7 Mar 9:54] Mattias Jonsson
Marked Bug#35043 as a duplicate of this bug.
[7 Mar 18:37] Kent Boortz
Will be corrected in MySQL 5.0.56 (Mac OS X dmg not released yet),
5.0.58, 4.1.24 and 5.1.24
[9 Mar 15:52] Mattias Jonsson
marked Bug#35172 as a duplicate of this bug.
[14 Mar 19:23] Sveta Smirnova
Bug #35294 was marked as duplicate of this one
[15 Mar 23:12] Mattias Jonsson
Bug#35314 was marked as duplicate of this one.
[16 Mar 1:26] Terry Mahoney
Thank you Matthias. The combination of moving /usr/local/MySQLCOM to /Library/StartupItems
and downloading your new MySQL.prefpane has fixed the problem on my G5 (64bit) PPC Leopard
(10.5.2) platform.

FYI, I do NOT have this problem on my Tiger-based (10.4.10) Intel Macbook. That download
was mysql-standard-5.0.27-osx10.4-i686.pkg, (Contents modified 25-Feb-07, 11:24 PM).

Terry M. (home-based MySQL user)
[16 Mar 1:27] Terry Mahoney
Thank you Mattias. The combination of moving /usr/local/MySQLCOM to /Library/StartupItems
and downloading your new MySQL.prefpane has fixed the problem on my G5 (64bit) PPC Leopard
(10.5.2) platform.

FYI, I do NOT have this problem on my Tiger-based (10.4.10) Intel Macbook. That download
was mysql-standard-5.0.27-osx10.4-i686.pkg, (Contents modified 25-Feb-07, 11:24 PM).

Terry M. (home-based MySQL user)
[20 Mar 3:46] Roupen Nahabedian
Newb Q: How does one access the Preference Panel referenced?

By the way, I am running 10.5.2 Leopard and installed 5.0.51a on Macbook Pro and same
issue with StartupItem trying to correct.
[20 Mar 4:38] Roupen Nahabedian
Me again... when I try "mv MySQLCOM/ /Library/StartupItems/" from "/usr/local/MySQLCOM" i
get permission denied. I tried to mkdir under /StartupItems same issue.

Fellow Leopard users that have done already - what am i missing? Tried "su" to no avail.
HELP! :)
[20 Mar 7:20] Mattias Jonsson
If the MySQLCOM dir is located in /usr/local, then do "sudo mv /usr/local/MySQLCOM
/Library/StartupItems/" to move it to the correct place. The link for the updated
MySQL.prefPane (from Bug#28854) is, as stated above:
ftp://ftp.mysql.com/pub/mysql/download/gui-tools/MySQL.prefPane-leopardfix.zip
after it is installed, you can graphically start and stop MySQL through "System
Preferences->MySQL".
[20 Mar 8:05] Roupen Nahabedian
Thanks Mattias. One more question -- where do I copy the MySQL.prefPane to? Again, pardon
the newb question :)
[20 Mar 8:53] Mattias Jonsson
Regarding the MySQL.prefPane, it should be as easy as a double click. (Mac OS X installs
it into the System Preferences then. Either
/Users/<user>/Library/PreferencePanes/MySQL.prefPane if you install it for a specific user
or /Library/PreferencePanes/MySQL.prefPane if you install for everyone.)
[20 Mar 19:45] Roupen Nahabedian
Mattias, life is good bro :) Thanks! 

The mv worked and the StartupItem is in System Prefs and I am able to start and stop
MySQL. Sweet!

Final Q: Does the option to "Automatically Start MySQL at Startup" work with this
workaround?
[2 Apr 14:32] Kent Boortz
Was corrected in 4.1.24, 5.0.56, 5.1.24-rc
[2 Apr 20:44] Paul DuBois
Noted in 4.1.24, 5.0.60, 5.1.24 changelogs.

On Mac OS X, the StartupItem for MySQL did not work.
[8 Apr 12:42] Sveta Smirnova
Bug #35892 was marked as duplicate of this one.
[8 Apr 14:36] Dirk H. Schulz
Sveta, 

this bug is NOT a duplicate of #35892. Here, people have difficulties with starting up
MySQL Server on MacOS X for various reasons although a startup item IS installed. 

I have verified that the MySQLStartupItem.pkg of mysql-5.0.51a for MacOS X 10.4 PowerPC
DOES NOT INSTALL any startup item because the package DOES NOT CONTAIN the startup item to
be installed. 

But no problem, we can run this as part of bug #25008 if that makes things easier. 

Again the way to verifiy the bug: 
If you take for example MySQLStartupItem.pkg from mysql-5.0.45-osx10.4-powerpc.dmg, open
it and go to
/Volumes/mysql-5.0.45-osx10.4-powerpc/MySQLStartupItems.pkg/Contents and do "gzip -cd
Archive.pax.gz", you get
.
./MySQLCOM
./MySQLCOM/MySQLCOM
./MySQLCOM/StartupParameters.plist

That means: There IS a startup item to install within the pkg file. 

If you do the same with the current version 5.0.51a, you get:
.
And that is the problem I opened the bug for - NO startup item to install within the pkg
file. The archive is empty, and the BOM is empty as well. 

Regards, 

Dirk
[8 Apr 14:41] Dirk H. Schulz
Sveta, 

I am sorry, I now found that somewhere amongst all the different problems mentioned here
there is also what I described. Sorry for doubling up. 

Dirk
[9 Apr 1:58] Sveta Smirnova
Bug #35915 was marked as duplicate of this one.
[30 Apr 0:56] Paul DuBois
Noted in 5.0.51b changelog.
[4 May 0:01] Ben Robinson
Try auto-starting MySQL server as root.

Instructions:
1. If you don't already have a root account, create one: <code>sudo passwd root</code>
2. Continuing from step 1, enter and confirm a password for root.  Now log out and log in
using username "root" and password = the password you just set.
3. Go to your preferences pane in the root account and, assuming you chose to have a MySQL
preferences pane installed, select "Automatically start MySQL Server on startup."