The tasks you must perform to install and configure MySQL in the global zone are as follows:
Install and configure the cluster as instructed in Sun Cluster Software Installation Guide for Solaris OS.
Install the following cluster software components on both nodes.
Sun Cluster core software
Sun Cluster data service for MySQL
Beginning on the node that owns the file system, add the mysql user.
phys-schost-1# groupadd -g 1000 mysql phys-schost-1# useradd -g 1000 -d /global/mnt3/mysql -m -s /bin/ksh mysql phys-schost-2# groupadd -g 1000 mysql phys-schost-2# useradd -g 1000 -d /global/mnt3/mysql -m -s /bin/ksh mysql |
Register the necessary data types on one of the nodes.
phys-schost-1# clresourcetype register SUNW.gds SUNW.HAStoragePlus |
Create the MySQL resource group.
phys-schost-1# clresourcegroup create RG-MYS |
Create the logical host.
phys-schost-1# clreslogicalhostname create -g RG-MYS ha-host-1 |
Create the HAStoragePlus resource in the RG-MYS resource group.
phys-schost-1# clresource create -g RG-MYS -t SUNW.HAStoragePlus -p AffinityOn=TRUE \ -p FilesystemMountPoints=/global/mnt3,/global/mnt4 RS-MYS-HAS |
Enable the resource group.
phys-schost-1# clresourcegroup online -M RG-MYS |
These steps illustrate how to install the MySQL software in the default directory /usr/local/mysql. As long as only one node is mentioned it needs to be the node where your resource group is online.
Install the MySQL binaries on both nodes.
phys-schost-1# cd /usr/local phys-schost-1# tar xvf mysql-max-5.0.22-solaris10-architcture_64.tar.gz phys-schost-1# ln -s mysql-max-5.0.22-solaris10-architcture_64 mysql |
Change the ownership of the MySQL binaries on both nodes.
phys-schost-1# chown -R mysql:mysql /usr/local/mysql |
Create your data base directories.
phys-schost-1# mkdir -p /global/mnt3/mysql-data/logs phys-schost-1# mkdir /global/mnt3/mysql-data/innodb phys-schost-1# mkdir /global/mnt3/mysql-data/BDB |
Bootstrap MySQL.
phys-schost-1# cd /usr/local/mysql phys-schost-1# ./scripts/* --datadir=/global/mnt3/mysql-data |
Create your my.cnf config-file in /global/mnt3/mysql-data
phys-schost-1# cat > /global/mnt3/mysql-data/my.cnf << EOF [mysqld] server-id=1 #port=3306 # 10.18.5.1 is the address of the logical host bind-address=10.18.5.1 # this is the address of the logical host socket=/tmp/hahostix1.sock log=/global/mnt3/mysql-data/logs/log1 log-bin=/global/mnt3/mysql-data/logs/bin-log binlog-ignore-db=sc3_test_database log-slow-queries=/global/mnt3/mysql-data/logs/log-slow-queries #log-update=/global/mnt3/mysql-data/logs/log-update # Innodb #skip-innodb innodb_data_home_dir = /global/mnt3/mysql-data/innodb innodb_data_file_path = ibdata1:10M:autoextend innodb_log_group_home_dir = /global/mnt3/mysql-data/innodb innodb_log_arch_dir = /global/mnt3/mysql-data/innodb # You can set .._buffer_pool_size up to 50 - 80 % # of RAM but beware of setting memory usage too high set-variable = innodb_buffer_pool_size=50M set-variable = innodb_additional_mem_pool_size=20M # Set .._log_file_size to 25 % of buffer pool size set-variable = innodb_log_file_size=12M set-variable = innodb_log_buffer_size=4M innodb_flush_log_at_trx_commit=1 set-variable = innodb_lock_wait_timeout=50 # BDB # uncomment the skip-bdb if you used a binary download. # binary downloads come very often without the bdb support. #skip-bdb bdb-home=/global/mnt3/mysql-data bdb-no-recover bdb-lock-detect=DEFAULT bdb-logdir=/global/mnt3/mysql-data/BDB bdb-tmpdir=/global/mnt3/mysql-data/BDB #bdb_max_lock=10000 # Replikering Slave #server-id=2 #master-host=administerix #master-user=repl #master-password=repl #master-info-file=/global/mnt3/mysql-data/logs/master.info # MySQL 4.x #relay-log=/global/mnt3/mysql-data/logs/slave-bin.log #relay-log-info-file=/global/mnt3/mysql-data/logs/slave-info |
Change the ownership of the MySQL data directory.
phys-schost-1# chown -R mysql:mysql /global/mnt3/mysql-data |
Change the permission of the my.cnf file.
phys-schost-1# chmod 644 /global/mnt3/mysql-data/my.cnf |
Copy the MySQL configuration file from the agent directory to its deployment location.
phys-schost-1# cp /opt/SUNWscmys/util/mysql_config /global/mnt3 phys-schost-1# cp /opt/SUNWscmys/util/ha_mysql_config /global/mnt3 |
Add this cluster's information to the mysql_config configuration file.
The following listing shows the relevant file entries and the values to assign to each entry.
. . . MYSQL_BASE=/usr/local/mysql MYSQL_USER=root MYSQL_PASSWD=root MYSQL_HOST=ha-host-1 FMUSER=fmuser FMPASS=fmuser MYSQL_SOCK=/tmp/ha-host-1.sock MYSQL_NIC_HOSTNAME="phys-schost-1 phys-schost-2" MYSQL_DATADIR=/global/mnt3/mysql-data |
Add this cluster's information to the ha_mysql_config configuration file.
The following listing shows the relevant file entries and the values to assign to each entry.
. . . RS=RS-PGS RG=RG-MYS PORT=5432 LH=hahostix1 HAS_RS=RS-MYS-HAS . . . BASEDIR=/usr/local/mysql DATADIR=/global/mnt3/mysql-data MYSQLUSER=mysql MYSQLHOST=ha-host-1 FMUSER=fmuser FMPASS=fmuser LOGDIR=/global/mnt3/mys-data/logs CHECK=YES |
Save and close the file.
Start the MySQL database manually on the node where the resource group is online.
phys-schost-1# cd /usr/local/mysql phys-schost-1# ./bin/mysqld --defaults-file=/global/mnt3/mysql-data/my.cnf \ --basedir=/usr/local/mysql --datadir=/global/mnt3/mysql-data \ --pid-file=/global/mnt3/mysql-data/mysqld.pid \ --user=mysql >> /global/mnt3/mysql-data/logs/ha-host-1.log 2>&1 & |
Set the password for localhost in MySQL to root.
phys-schost-1# /usr/local/mysql/bin/mysqladmin -S /tmp/ha-host-1.sock -uroot \ password 'root' |
Add an admin user in the MySQL database for the logical host.
phys-schost-1# /usr/local/mysql/bin/mysql -S /tmp/ha-host-1.sock -uroot -proot mysql> use mysql; mysql> GRANT ALL ON *.* TO 'root'@'phys-schost-1' IDENTIFIED BY 'root'; mysql> GRANT ALL ON *.* TO 'root'@'phys-schost-2' IDENTIFIED BY 'root'; mysql> UPDATE user SET Grant_priv='Y' WHERE User='root' AND Host='phys-schost-1'; mysql> UPDATE user SET Grant_priv='Y' WHERE User='root' AND Host='phys-schost-2'; mysql> exit |
Prepare the Sun Cluster specific test database.
phys-schost-1# ksh /opt/SUNWscmys/util/mysql_register -f /global/mnt3/mysql_config |
Stop the MySQL database.
phys-schost-1# kill -TERM `cat /global/mnt3/mysql-data/mysqld.pid` |
Run the ha_mysql_register script to register the resource.
phys-schost-1# ksh /opt/SUNWscmys/util/ha_mysql_register \ -f /global/mnt3/ha_mysql_config |
Enable the resource.
phys-schost-1# clresource enable RS-MYS |