| #!/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 |