This procedure assumes that you installed the data service packages during your initial Sun Cluster installation.
If you did not install the Sun Cluster HA for MySQL packages as part of your initial Sun Cluster installation, go to Installing the Sun Cluster HA for MySQL Packages.
Log in to the zone on the node that hosts yourMySQLresource-group
Become superuser or assume a role that provides solaris.cluster.verb RBAC authorization on the nodes zone in the cluster that host MySQL.
Start the MySQL Server instance manually.
# cd <MySQL Base directory> |
# ./bin/mysqld --defaults-file=<MySQL Database directory>/my.cnf \ --basedir=<MySQL. Base directory>\ --datadir=<MySQL Database directory>\ --user=mysql\ --pid-file=<MySQL Database directory>/mysqld.pid & |
Configure the admin password for the admin user.
# <MySQL Databasedirectory>/bin/mysqladmin \ -S /tmp/<Logical host>.sock password 'admin password' |
Add the admin user for accessing locally a MySQL instance with a MySQL Logicalhost ip name.
If you want to access the MySQL instance only through the socket (localhost), omit this step.
When bootstrapping MySQL the command mysql_install_db creates two admin users, one belonging to localhost and one belonging to the node on which mysql_install_db was executed.
Add an admin user for every physical node in the cluster that runs this MySQL instance.
If the node name and the hostname for the physical interface are different, use the hostname for the physical interface.
The following is an example for a MySQL instance on Sun Cluster 3.2.
# mysql -S /tmp/hahostix1.sock -uroot -p'admin-password' mysql> use mysql; mysql> GRANT ALL ON *.* TO 'root'@'zone1' IDENTIFIED BY 'rootpasswd'; mysql> exit; |
You have to manually add Grant_priv to the admin users. See the MySQL Administration documentation.
The following is an example for a MySQL 4.x or 5.0.x on Sun Cluster 3.2.
# mysql -S /tmp/hahostix1.sock -uroot -p'admin-password' mysql> use mysql; mysql> UPDATE user SET Grant_priv='Y' WHERE User'root' AND Host='zone'; mysql> exit; |
If you experience any problems here, refer to the MySQL administration documentation.
Copy the MySQL configuration file to your home directory.
# cp /opt/SUNWscmys/util/mysql_config /my-place |
Create a faultmonitor-user and a test-database for the MySQL instance.
# cd my-place |
Edit the mysql_config file and follow the comments within that file:
# # Copyright 2006 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # #ident "@(#)mysql_config.ksh 1.3 06/03/08 SMI" # This file will be sourced in by mysql_register and the parameters # listed below will be used. # # Where is mysql installed (BASEDIR) MYSQL_BASE= # Mysql admin-user for localhost (Default is root) MYSQL_USER= # Password for mysql admin user MYSQL_PASSWD= # Configured logicalhost MYSQL_HOST= # Specify a username for a faultmonitor user FMUSER= # Pick a password for that faultmonitor user FMPASS= # Socket name for mysqld ( Should be /tmp/<logical-host>.sock ) MYSQL_SOCK= # Specify the physical hostname for the physical NIC that this logical hostname # belongs to for every node in the cluster this Resource group can be located on. # IE: The logicalhost lh1 belongs to hme1 for physical-node phys-1 and # hme3 for physical-node phys-2. The hostname for hme1 is phys-1-hme0 and # for hme3 on phys-2 it is phys-2-hme3. # IE: MYSQL_NIC_HOSTNAME="phys-1-hme0 phys-2-hme3" MYSQL_NIC_HOSTNAME= # Where are your databases installed? (location of my.cnf) MYSQL_DATADIR= |
The following is an example for a MySQL instance on Sun Cluster 3.2.
MYSQL_BASE=/global/mysql MYSQL_USER=root MYSQL_PASSWD=root MYSQL_HOST=hahostix1 FMUSER=fmuser FMPASS=fmuser MYSQL_SOCK=/tmp/hahostix1.sock MYSQL_NIC_HOSTNAME="zone1" MYSQL_DATADIR=/global/mysql-data |
After editing mysql_config, you must run the mysql_register script.
# /opt/SUNWscmys/util//mysql_register -f my-place/mysql_config |
Stop the MySQL Server instance manually.
# kill -TERM `cat <MySQL Database directry>/mysqld.pid |
Leave the zone and become superuser or assume a role that provides solaris.cluster.verb RBAC authorization on the nodes global zone in the cluster that host MySQL.
Copy the MySQL configuration file to your home directory.
# cp /opt/SUNWscmys/util/ha_mysql_config /my-place |
Create and register MySQL as a failover data service.
# cd my-place |
Edit the ha_mysql_config file and follow the comments within that file, i.e.
# # Copyright 2006 Sun Microsystems, Inc. All rights reserved. # Use is subject to license terms. # #ident "@(#)ha_mysql_config.ksh 1.3 06/03/08 SMI" # This file will be sourced in by ha_mysql_register and the parameters # listed below will be used. # # These parameters can be customized in (key=value) form # # RS - name of the resource for the application # RG - name of the resource group containing RS # # To have the mysql agent local zone aware, 4 Variables are needed: # ZONE - the zone name where the Mysql Database should run in # Optional # ZONEBT - The resource name which controls the zone. # Optional # PROJECT - A project in the zone, that will be used for this service # specify it if you have an su - in the start stop or probe, # or to define the smf credentials. If the variable is not set, # it will be translated as :default for the sm and default # for the zsh component # Optional # ZUSER - A user in the the zone which is used for the smf method # credentials. Yur smf servic e will run under this user # Optional # # Mysql specific Variables # # BASEDIR - name of the Mysql bin directory # DATADIR - name of the Mysql Data directory # MYSQLUSER - name of the user Mysql should be started of # LH - name of the Logical Hostname Sun Cluster resource # MYSQLHOST - name of the host in /etc/hosts # FMUSER - name of the Mysql fault monitor user # FMPASS - name of the Mysql fault monitor user password # LOGDIR - name of the directory mysqld should store it's logfile. # CHECK - should HA-MySQL check MyISAM index files before start YES/NO. # HAS_RS - name of the MySQL HAStoragePlus Sun Cluster resource # |
The following is an example for a MySQL instance.
RS=mysql-res RG=mysql-rg BASEDIR=/global/mysql DATADIR=/global/mysql-data MYSQLUSER=mysql LH=hahostix1 MYSQLHOST=hahostix1 FMUSER=fmuser FMPASS=fmuser LOGDIR=/global/mysql-data/logs CHECK=YES HAS_RS=mysql-has-res ZONE=zone1 ZONE_BT=zone1-rs PROJECT=MySQL-project |
Register the MySQL resource.
# /opt/SUNWscmys/util/ha_mysql_register -f my-place/ha_mysql_config |
Enable each MySQL resource.
Repeat this step for each MySQL instance, if multiple instances were created.
# clresource status # clresource enable MySQL-resource |