MySQL集群自动安装脚本.docx
- 文档编号:10173145
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:11
- 大小:16.48KB
MySQL集群自动安装脚本.docx
《MySQL集群自动安装脚本.docx》由会员分享,可在线阅读,更多相关《MySQL集群自动安装脚本.docx(11页珍藏版)》请在冰豆网上搜索。
MySQL集群自动安装脚本
MySQL集群自动安装脚本
1.在MySQL源代码目录下新建脚本install.sh,把下面的代码添加到这个脚本中:
#!
/bin/bash
############################################
#########MySQLServerConfig##############
############################################
#DeterminetoinstallMySQLserver
#"0"meansdonotinstallserverprograms
INST_SERVER=1
#MySQLinstallationpath
INST_PATH="/usr/local/mysql"
#DefinetheportsofMySQLinstallation,intputstringsof
#PORTwithwhitespaceseparated.
#e.g."33063307"meansinstalltwoMySQLservers:
#Thefirstserverwillbeinstalledto$INST_PATH/1andlisten3306port.
#Thesecondserverwillbeinstalledto$INST_PATH/2andlisten3307port.
#......
INST_PORTS="3306"
#Themanagementserverinformation
MGM_HOST="192.168.1.253"
MGM_PORT="2200"
###########################################
#########MySQLClusterConfig############
###########################################
#Determinetoinstallcluster
#"0"meansdonotinstallclusterprograms
INST_CLUSTER=1
#DefineCOMPUTERsinconfig.ini,intputstringsofHostNamewith
#whitespaceseparated.
#TheIdattributeisautoincrementandstartwith1.
#e.g."192.168.1.253192.168.252"willgeneratethefollowingcode
#[COMPUTER]
#Id=1
#HostName=192.168.1.253
#[COMPUTER]
#Id=2
#HostName=192.168.1.252
COMPUTERS="192.168.1.253192.168.1.252"
#DefineMGMsinconfig.ini,intputstringsofHostNamewithwhitespaceseparated.
#e.g."192.168.1.253192.168.252"willgeneratethefollowingcode
#[MGM]
#HostName=192.168.1.253
#[MGM]
#HostName=192.168.1.252
MGMS="192.168.1.253"
#DefineDBsinconfig.ini,intputidsofExecuteOnComputerwithwhitespaceseparated.
#e.g."12"willgeneratethefollowingcode
#[DB]
#ExecuteOnComputer=1
#[DB]
#ExecuteOnComputer=2
DBS="1"
#DefineAPIsinconfig.ini,intputidsofExecuteOnComputerwithwhitespaceseparated.
#e.g."1012"willgeneratethefollowingcode
#[API]
#ExecuteOnComputer=1
#[API]
#[API]
#ExecuteOnComputer=1
#[API]
#ExecuteOnComputer=2
APIS="1022"
######################################################################
##########Startingtoinstallprograms,donotmodifythem!
#########
######################################################################
echo"Startingtoinstallprograms">install.log
#Findinstallationpath
if[$#-gt0]
then
INST_PATH="$1"
else
INST_PATH="/usr/local/mysql"
fi
if[0-lt$INST_SERVER]
then
echo"Now,installingtheMySQLservers..."
#Looptoinstallmysqlservers
INSTALLED_SERVER_COUNT=1
forPORTin$INST_PORTS
do
#Definethecurrentmysqlserverinstallationpath
MYSL_PATH=$INST_PATH/$INSTALLED_SERVER_COUNT
#Configuremysqlserver
echo"Exec./configure--prefix=$MYSL_PATH--with-pthread
--with-unix-socket-path=$MYSL_PATH/var/mysql.sock--with-mysqld-user=root
--with-tcp-port=$PORT--with-charset=gbk--with-ndbcluster">>install.log
./configure--prefix=$MYSL_PATH--with-pthread
--with-unix-socket-path=$MYSL_PATH/var/mysql.sock
--with-mysqld-user=root--with-tcp-port=$PORT
--with-charset=gbk--with-ndbcluster
#Makemysqlserver
echo"Execmake&&makeinstall">>install.log
make&&makeinstall
#Createvardirectoryformysqldata
mkdir-p$MYSL_PATH/var
#Createf
echo"Create$MYSL_PATH/var/f">>install.log
echo"[client]">$MYSL_PATH/var/f
echo"port=$PORT">>$MYSL_PATH/var/f
echo"socket=$MYSL_PATH/var/mysql.sock">>$MYSL_PATH/var/f
echo"">>$MYSL_PATH/var/f
echo"[mysqld]">>$MYSL_PATH/var/f
echo"ndbcluster">>$MYSL_PATH/var/f
echo"ndb_connectstring=host=$MGM_HOST:
$MGM_PORT">>$MYSL_PATH/var/f
echo"user=root">>$MYSL_PATH/var/f
echo"port=$PORT">>$MYSL_PATH/var/f
echo"basedir=$MYSL_PATH/">>$MYSL_PATH/var/f
echo"datadir=$MYSL_PATH/var/">>$MYSL_PATH/var/f
echo"socket=$MYSL_PATH/var/mysql.sock">>$MYSL_PATH/var/f
echo"default-character-set=gbk">>$MYSL_PATH/var/f
echo"default-storage-engine=INNODB">>$MYSL_PATH/var/f
echo"max_connections=500">>$MYSL_PATH/var/f
echo"">>$MYSL_PATH/var/f
echo"query_cache_size=33M">>$MYSL_PATH/var/f
echo"table_cache=1520">>$MYSL_PATH/var/f
echo"tmp_table_size=16M">>$MYSL_PATH/var/f
echo"thread_cache=38">>$MYSL_PATH/var/f
echo"">>$MYSL_PATH/var/f
echo"#MyISAMSpecificoptions">>$MYSL_PATH/var/f
echo"#skip-myisam">>$MYSL_PATH/var/f
echo"">>$MYSL_PATH/var/f
echo"#INNODBSpecificoptions">>$MYSL_PATH/var/f
echo"#skip-innodb">>$MYSL_PATH/var/f
chmod755$MYSL_PATH/var/f
#Installmysqldatabase
echo"Exec$MYSL_PATH/bin/mysql_install_db">>install.log
$MYSL_PATH/bin/mysql_install_db
#Createmysqlcontrolscript
if[-e$MYSL_PATH/share/mysql/mysql.server]
then
#Usedefaultmysqlcontrolscript
#Createmysqlserverstartscript
echo"Create$MYSL_PATH/start">>install.log
echo"$MYSL_PATH/share/mysql/mysql.serverstart">$MYSL_PATH/start
echo"Chmod755$MYSL_PATH/start">>install.log
chmod755$MYSL_PATH/start
#Createmysqlserverstopscript
echo"Create$MYSL_PATH/stop">>install.log
echo"$MYSL_PATH/share/mysql/mysql.serverstop">$MYSL_PATH/stop
echo"Chmod755$MYSL_PATH/stop">>install.log
chmod755$MYSL_PATH/stop
#Createmysqlserverrestartscript
echo"Create$MYSL_PATH/restart">>install.log
echo"$MYSL_PATH/share/mysql/mysql.serverrestart">$MYSL_PATH/restart
echo"Chmod755$MYSL_PATH/restart">>install.log
chmod755$MYSL_PATH/restart
else
#Usecustommysqlcontrolscript
#Createmysqlserverstartscript
echo"Create$MYSL_PATH/start">>install.log
echo"$MYSL_PATH/libexec/mysqld&">$MYSL_PATH/start
echo"Chmod755$MYSL_PATH/start">>install.log
chmod755$MYSL_PATH/start
#Createmysqlserverstopscript
echo"Create$MYSL_PATH/stop">>install.log
echo"$MYSL_PATH/bin/mysqladmin-uroot-pshutdown">$MYSL_PATH/stop
echo"Chmod755$MYSL_PATH/stop">>install.log
chmod755$MYSL_PATH/stop
#Createmysqlserverrestartscript
echo"Create$MYSL_PATH/restart">>install.log
echo"$MYSL_PATH/bin/mysqladmin-uroot-pshutdown">$MYSL_PATH/restart
echo"$MYSL_PATH/libexec/mysqld&">>$MYSL_PATH/restart
echo"Chmod755$MYSL_PATH/restart">>install.log
chmod755$MYSL_PATH/restart
fi
#Cleanmysqlservertogetreadyforthenextinstallation
echo"Execmakeclean">>install.log
makeclean
INSTALLED_SERVER_COUNT=$(($INSTALLED_SERVER_COUNT+1))
done
echo"Configurations!
MySQLservershasbeeninstalledsuccessfully."
echo""
echo"1.Tostartmysqlserver,usethefollowingcommand:
"
echo"cd"
echo"./start"
echo""
echo"2.Tostopmysqlserver,usethefollowingcommand:
"
echo"cd"
echo"./stop"
echo""
echo"3.Torestartmysqlserver,usethefollowingcommand:
"
echo"cd"
echo"./restart"
fi
#Installclusterprograms
if[0-lt$INST_CLUSTER]
then
if[-e$INST_PATH/1]
then
echo"Now,installingtheclusterprograms..."
#Definetheclusterinstallationpath
CLST_PATH=$INST_PATH/cluster
#Createclusterdirectory
echo"Execmkdir-p$CLST_PATH">>install.log
mkdir-p$CLST_PATH
#Copyclusterbinaries
echo"Execcp$INST_PATH/1/bin/ndb*$CLST_PATH/">>install.log
cp$INST_PATH/1/bin/ndb*$CLST_PATH/
echo"Execcp$INST_PATH/1/libexec/ndb*$CLST_PATH/">>install.log
cp$INST_PATH/1/libexec/ndb*$CLST_PATH/
#Createconfig.ini
echo"Create$CLST_PATH/config.ini">>install.log
#Writedefaultglobalconfiguration
echo"[TCPDEFAULT]">>$CLST_PATH/config.ini
echo"">>$CLST_PATH/config.ini
echo"[MGMDEFAULT]">>$CLST_PATH/config.ini
echo"">>$CLST_PATH/config.ini
echo"[DBDEFAULT]">>$CLST_PATH/config.ini
echo"NoOfReplicas=1">>$CLST_PATH/config.ini
echo"">>$CLST_PATH/config.ini
echo"[APIDEFAULT]">>$CLST_PATH/config.ini
echo"">>$CLST_PATH/config.ini
#Writecomputersconfiguration
COMPUTER_ID=1
forCOMPUTERin$COMPUTERS
do
echo"[COMPUTER]">>$CLST_PATH/config.ini
echo"Id=$COMPUTER_ID">>$CLST_PATH/config.ini
echo"HostName=$COMPUTER">>$CLST_PATH/config.ini
echo"">>$CLST_PATH/config.ini
COMPUTER_ID=$(($COMPUTER_ID+1))
done
#Writemanagementserverconfiguration
forMGMin$MGMS
do
echo"[MGM]">>$CLST_PATH/config.ini
echo"HostName=$MGM">>$CLST_PATH/config.ini
echo"">>$CLST_PATH/config.ini
done
#Writestoragenodesconfiguration
forDBin$DBS
do
echo"[DB]">>$CLST_PATH/config.ini
echo"ExecuteOnComputer=$DB">>$CLST_PATH/config.ini
echo"">>$CLST_PATH/config.ini
done
#Writemysqlserversconfiguration
forAPIin$APIS
do
echo"[API]">>$CLST_PATH/config.ini
if[0-ne$API]
then
echo"ExecuteOnComputer=$API">>$CLST_PATH/config.ini
fi
echo"">>$CLST_PATH/config.ini
done
#CreateNdb.cfg
echo"Create$CLST_PATH/Ndb.cfg">>install.log
echo"host=$MGM_HOST:
$MGM_PORT">>$CLST_PATH/Ndb.cfg
echo"">>$CLST_PATH/Ndb.cfg
echo"Configurations!
Clusterprogramshasbeeninstalledsuccessfully."
echo""
echo"1.Tostartmanagementserver(MGM),usethefollowingcommand:
"
echo"cd$CLST_PATH"
echo"./ndb_mgmd"
echo""
echo"2.Tostartstroagenode(DB),usethefollowingcommand:
"
echo"cd$CLST_PATH"
echo"./ndbd"
echo""
echo"3.Tomanagethecluster,usethefollowingcommand:
"
echo"cd$CLST_PATH"
echo"./ndb_mgm"
echo""
echo"4.Else,nothingtodo.;)"
echo""
echo"Enjoyyourself."
else
echo"Clusterinstallationhasbeenstopped,thereasonis:
";
echo"Nodatabaseserverinstalled."
echo"Soyoucannotuseclusterprogramsinthismachine!
"
fi
fi
2.设置脚本权限
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MySQL 集群 自动 安装 脚本