#!/bin/bash
#
# Ubuntu MySQL Cluster Setup Script
# Created by: Derrick Rose
# www.daemonprojects.com
#

FILE="/tmp/out.$$"
GREP="/bin/grep"
# Check for root
if [ "$(id -u)" != "0" ]; then
   echo "This script must be run as root" 1>&2
   exit 1
fi

clear # Clear the screen.

echo "          Ubuntu MySql Cluster Setup"
echo "          --------------------------"
echo "Choose one of the following options:"
echo
echo "[M]Master Monitor Node"
echo "[S]Slave Node"
echo "[Q]Quit"
echo
echo "Note: this was tested on Ubuntu 9.10. Make sure MySQL has never been installed."
echo "MySQL 5.0 will be installed."
echo
read person

case "$person" in
# Note variable is quoted.

  "M" | "m" )
  # Accept upper or lowercase input.
  echo
  echo "*** Setting up Master Monitor Node..."
  echo "*** Installing Mysql Server 5.0 and Tools..."
  apt-get install mysql-server-5.0
  echo "*** Setting up Mysql NDB Conf..."

  if [ -f /etc/mysql/ndb_mgmd.cnf ]
  then
    echo "*** /etc/mysql/ndb_mgmd.cnf [FOUND]"
    echo "*** Backing up /etc/mysql/ndb_mgmd.cnf to /etc/mysql/ndb_mgmd.cnf.org"
    mv /etc/mysql/ndb_mgmd.cnf /etc/mysql/ndb_mgmd.cnf.org
  else
    echo "*** /etc/mysql/ndb_mgmd.cnf not found [SKIP]"
  fi

  echo "[NDBD DEFAULT]" >> /etc/mysql/ndb_mgmd.cnf
  echo "NoOfReplicas=2" >> /etc/mysql/ndb_mgmd.cnf
  echo "DataMemory=80M" >> /etc/mysql/ndb_mgmd.cnf
  echo "IndexMemory=18M" >> /etc/mysql/ndb_mgmd.cnf
  echo "[MYSQLD DEFAULT]" >> /etc/mysql/ndb_mgmd.cnf
  echo "[NDB_MGMD DEFAULT]" >> /etc/mysql/ndb_mgmd.cnf
  echo "[TCP DEFAULT]" >> /etc/mysql/ndb_mgmd.cnf
  echo "[NDB_MGMD]" >> /etc/mysql/ndb_mgmd.cnf
  echo "Please enter IP of this server: "
  read IP
  echo "HostName=$IP" >> /etc/mysql/ndb_mgmd.cnf
  echo "[NDBD]" >> /etc/mysql/ndb_mgmd.cnf
  echo "Please enter Slave Node 1 Server IP: "
  read NODE1
  echo "HostName=$NODE1" >> /etc/mysql/ndb_mgmd.cnf
  echo "DataDir=/var/lib/mysql-cluster" >> /etc/mysql/ndb_mgmd.cnf
  echo "BackupDataDir=/var/lib/mysql-cluster/backup" >> /etc/mysql/ndb_mgmd.cnf
  echo "DataMemory=512M" >> /etc/mysql/ndb_mgmd.cnf
  echo "[NDBD]" >> /etc/mysql/ndb_mgmd.cnf
  echo "Please enter Slave Node 2 Server IP: "
  read NODE2
  echo "HostName=$NODE2" >> /etc/mysql/ndb_mgmd.cnf
  echo "DataDir=/var/lib/mysql-cluster" >> /etc/mysql/ndb_mgmd.cnf
  echo "BackupDataDir=/var/lib/mysql-cluster/backup" >> /etc/mysql/ndb_mgmd.cnf
  echo "DataMemory=512M" >> /etc/mysql/ndb_mgmd.cnf
  echo "[MYSQLD]" >> /etc/mysql/ndb_mgmd.cnf
  echo "[MYSQLD]" >> /etc/mysql/ndb_mgmd.cnf
  echo "*** Creating /var/lib/mysql-cluster/backup..."
  mkdir /var/lib/mysql-cluster/backup
  chown -R mysql:mysql /var/lib/mysql-cluster
  echo "*** Restarting MySQL Cluster..."
  /etc/init.d/mysql-ndb-mgm restart
  echo "*** Restarting Mysql..."
  /etc/init.d/mysql restart
  /etc/init.d/mysql-ndb restart
  ;;

  "S" | "s" )
  echo
  echo "*** Setting up Slave Node..."
  echo "*** Installing Mysql Server 5.0 and Tools..."
  apt-get install mysql-server-5.0

  if [ -f /etc/mysql/my.cnf ]
  then
    echo "*** /etc/mysql/my.cnf [FOUND]"
    echo "*** Backing up /etc/mysql/my.cnf to /etc/mysql/my.cnf.org"
    mv /etc/mysql/my.cnf /etc/mysql/my.cnf.org
  else
    echo "*** /etc/mysql/my.cnf not found [SKIP]"
  fi

  echo "[client]" >> /etc/mysql/my.cnf
  echo "port        = 3306" >> /etc/mysql/my.cnf
  echo "socket        = /var/run/mysqld/mysqld.sock" >> /etc/mysql/my.cnf
  echo "[mysqld_safe]" >> /etc/mysql/my.cnf
  echo "socket        = /var/run/mysqld/mysqld.sock" >> /etc/mysql/my.cnf
  echo "nice        = 0" >> /etc/mysql/my.cnf
  echo "[mysqld]" >> /etc/mysql/my.cnf
  echo "ndbcluster" >> /etc/mysql/my.cnf
  echo "Please enter the Master Node Server IP: "
  read MASTER
  echo "ndb-connectstring=$MASTER" >> /etc/mysql/my.cnf
  echo "user        = mysql" >> /etc/mysql/my.cnf
  echo "pid-file    = /var/run/mysqld/mysqld.pid" >> /etc/mysql/my.cnf
  echo "socket        = /var/run/mysqld/mysqld.sock" >> /etc/mysql/my.cnf
  echo "port        = 3306" >> /etc/mysql/my.cnf
  echo "basedir        = /usr" >> /etc/mysql/my.cnf
  echo "datadir        = /var/lib/mysql" >> /etc/mysql/my.cnf
  echo "tmpdir        = /tmp" >> /etc/mysql/my.cnf
  echo "skip-external-locking" >> /etc/mysql/my.cnf
  echo "bind-address        = 127.0.0.1" >> /etc/mysql/my.cnf
  echo "key_buffer        = 16M" >> /etc/mysql/my.cnf
  echo "max_allowed_packet    = 16M" >> /etc/mysql/my.cnf
  echo "thread_stack        = 192K" >> /etc/mysql/my.cnf
  echo "thread_cache_size       = 8" >> /etc/mysql/my.cnf
  echo "myisam-recover         = BACKUP" >> /etc/mysql/my.cnf
  echo "query_cache_limit    = 1M" >> /etc/mysql/my.cnf
  echo "query_cache_size        = 16M" >> /etc/mysql/my.cnf
  echo "expire_logs_days    = 10" >> /etc/mysql/my.cnf
  echo "max_binlog_size         = 100M" >> /etc/mysql/my.cnf
  echo "[mysqldump]" >> /etc/mysql/my.cnf
  echo "quick" >> /etc/mysql/my.cnf
  echo "quote-names" >> /etc/mysql/my.cnf
  echo "max_allowed_packet    = 16M" >> /etc/mysql/my.cnf
  echo "[mysql]" >> /etc/mysql/my.cnf
  echo "[isamchk]" >> /etc/mysql/my.cnf
  echo "key_buffer        = 16M" >> /etc/mysql/my.cnf
  echo "!includedir /etc/mysql/conf.d/" >> /etc/mysql/my.cnf
  echo "[MYSQL_CLUSTER]" >> /etc/mysql/my.cnf
  echo "ndb-connectstring=$MASTER" >> /etc/mysql/my.cnf
  echo "*** Restarting Mysql..."
  /etc/init.d/mysql restart
  /etc/init.d/mysql-ndb restart
  ;;

          * )
   # Default option.      
   echo
   echo "Thank you for using MCS"
  ;;

esac

echo

exit 0

Comments:

Leave a Reply



(Your email will not be publicly displayed.)

Please type the letters and numbers shown in the image.Captcha Code