Solaris 10 and later now supplies MySQL as part of the OS, provided you've installed the SUNWmysql[rtu] pkgs, but it's started via a legacy RC script still. This document details how to create an SMF manifest to start MySQL instead.

Update: This process is only needed if you are running Solaris 10, or you wish to use the MySQL 4.x installation that is supplied with Nevada. Later builds of Nevada (I believe snv_79 and later) now come with MySQL 5.0 and includes a service manifest for this version.

1. Find all of the current RC scripts:

# find /etc/rc* /etc/init.d | grep -i mysql
/etc/rc0.d/K00mysql
/etc/rc1.d/K00mysql
/etc/rc2.d/K00mysql
/etc/rc3.d/S99mysql
/etc/rcS.d/K00mysql
#

If you've never configured MySQL, you may find these don't exist yet.

2. Remove all the old legacy scripts, if they exist.

# for x in `find /etc/rc* /etc/init.d | grep -i mysql`; do rm $x; done

3. Create the MySQL manifest (download):

# mkdir /var/svc/manifest/application/database
# cp mysql.txt /var/svc/manifest/application/database/mysql.xml

If you've got Postgresql installed already, you'll already have a /var/svc/manifest/application/database directory.

4. Import the manifest:

# svccfg validate /var/svc/manifest/application/database/mysql.xml
# svccfg import /var/svc/manifest/application/database/mysql.xml

5. Check the service:

# svcs mysql
STATE STIME FMRI
disabled 13:23:17 svc:/application/database/mysql:default

There you have it. Now to enable it, just ensure you've configured MySQL as per the README at /etc/sfw/mysql/README.solaris.mysql and then enable the service:

# svcadm enable mysql
# svcs mysql
STATE STIME FMRI
online 13:29:14 svc:/application/database/mysql:default