#!/bin/sh
# install mysql-cluster
#usage:sh inscluster |ndb_mgmd |ndbd |mysqld $2 eg:sh inscluster.sh ndbd 116.211.12.171
#$1 type $2:ndb-mgmd-ip
group=`cat /etc/group|grep -i "mysql"|awk -F':' '{print $1}'`
if [ "$group" != "mysql" ];then
groupadd mysql
fi
user=`cat /etc/shadow|grep -i "mysql"|awk -F':' '{print $1}'`
if [ "$user" != "mysql" ];then
useradd -g mysql mysql
fi
ndb_mgmd()
{
#install ndb_mgmd
mkdir -p /app/mysql-cluster/mysql-cluster
ln -s /app/mysql-cluster /usr/local
chown -R mysql:mysql /app/mysql-cluster/mysql-cluster
cd /app/mysql-cluster
tar zxvf /root/mysql-cluster-gpl-7.1.17.tar.gz
cd mysql-cluster-gpl-7.1.17
sed -i '54761s/\$RM/\#\$RM/' ./configure
./configure --prefix=/app/mysql-cluster --with-plugins=partition,ndbcluster
make
make install
ln -s /app/mysql-cluster/libexec/ndb_mgmd /app/mysql-cluster/bin
cp /app/mysql-cluster/libexec/ndb_mgmd /etc/rc.d/init.d/ndb_mgmd
chmod +x /etc/rc.d/init.d/ndb_mgmd
#chkconfig --add ndb_mgmd
echo "PATH=$PATH:/usr/local/mysql-cluster/bin" >>/etc/bashrc
echo "export PATH" >>/etc/bashrc
#configure config.ini
config=/app/mysql-cluster/config.ini
echo -e '[ndbd default]\nNoOfReplicas=2\nDataMemory=500M\nIndexMemory=100M'>> $config
echo -e '[tcp default]\n#portnumber=220'>> $config
echo -e '[ndb_mgmd]\nhostname='$2'\n#MGM上保存日志的目录\ndatadir=/app/mysql-cluster/mysql-cluster\nnodeid =1'>> $config
echo -e '[ndbd]\nhostname=\n#ndb上保存数据的目录\ndatadir=/app/mysql-cluster/ndbdata\nnodeid =2'>> $config
echo -e '[ndbd]\nhostname=\n#ndb上保存数据的目录\ndatadir=/app/mysql-cluster/ndbdata\nnodeid =3'>> $config
echo -e '[mysqld]\nhostname=\nnodeid =4' >>$config
echo -e '[mysqld]\nhostname=\nnodeid =5'>> $config
}
ndbd()
{
#install datanode
mkdir -p /app/mysql-cluster
cd /app/mysql-cluster
ln -s /app/mysql-cluster /usr/local
tar zxvf /root/mysql-cluster-gpl-7.1.17.tar.gz
cd mysql-cluster-gpl-7.1.17
sed -i '54761s/\$RM/\#\$RM/' ./configure
./configure --prefix=/app/mysql-cluster --with-plugins=partition,ndbcluster
make
make install
./scripts/mysql_install_db --user=mysql --datadir=/app/mysql-cluster/ndbdata
cp ./support-files/my-large.cnf /etc/my.cnf
ln -s /app/mysql-cluster/libexec/ndbd /app/mysql-cluster/bin
chown -R mysql:mysql /app/mysql-cluster/ndbdata
cp /app/mysql-cluster/libexec/ndbd /etc/rc.d/init.d/ndbd
chmod +x /etc/rc.d/init.d/ndbd
echo "PATH=$PATH:/usr/local/mysql-cluster/bin" >>/etc/bashrc
echo "export PATH" >>/etc/bashrc
#configure my.cnf
sed -i '128a\ndbcluster\nndb-connectstring='$2'\n[mysql_cluster]\nndb-connectstring='$2'\n' /etc/my.cnf
}
mysqld ()
{
#install sqlnode
mkdir -p /app/mysql-cluster
cd /app/mysql-cluster
ln -s /app/mysql-cluster /usr/local
tar zxvf /root/mysql-cluster-gpl-7.1.17.tar.gz
cd mysql-cluster-gpl-7.1.17
sed -i '54761s/\$RM/\#\$RM/' ./configure
./configure --prefix=/app/mysql-cluster --with-plugins=partition,ndbcluster
make
make install
./scripts/mysql_install_db --user=mysql
cp ./support-files/my-large.cnf /etc/my.cnf
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
cd /app/mysql-cluster
chown -R mysql:mysql var
chmod +x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
echo "PATH=$PATH:/usr/local/mysql-cluster/bin" >>/etc/bashrc
echo "export PATH" >>/etc/bashrc
#configure my.cnf
sed -i '128a\default-storage-engine=ndb\nndbcluster\nndb-connectstring='$2'\n[mysql_cluster]\nndb-connectstring='$2'' /etc/my.cnf
}
case "$1" in
"ndb_mgmd")
ndb_mgmd
;;
"ndbd")
ndbd
;;
"mysqld")
mysqld
;;
esac