MySQL cluster automatic installation script

Source: Internet
Author: User
Tags stop script

1. Create the script install. sh In the MySQL source code directory and add the following code to the script:

#!/bin/bash##################################################### MySQL Server Config ###########################################################Determine to install MySQL server#"0" means do not install server programsINST_SERVER=1#MySQL installation pathINST_PATH="/usr/local/mysql"#Define the ports of MySQL installation, intput strings of #PORT with whitespace separated.#e.g. "3306 3307" means install two MySQL servers:#     The first server will be installed to $INST_PATH/1 and listen 3306 port.#     The second server will be installed to $INST_PATH/2 and listen 3307 port.#     ... ...INST_PORTS="3306"#The management server informationMGM_HOST="192.168.1.253"MGM_PORT="2200"#################################################### MySQL Cluster Config ########################################################Determine to install cluster#"0" means do not install cluster programsINST_CLUSTER=1#Define COMPUTERs in config.ini, intput strings of HostName with #whitespace separated.#The Id attribute is auto increment and start with 1.#e.g. "192.168.1.253 192.168.252" will generate the following code#  [COMPUTER]#    Id=1#    HostName=192.168.1.253#  [COMPUTER]#    Id=2#    HostName=192.168.1.252COMPUTERS="192.168.1.253 192.168.1.252"#Define MGMs in config.ini, intput strings of HostName with whitespace separated.#e.g. "192.168.1.253 192.168.252" will generate the following code#  [MGM]#    HostName=192.168.1.253#  [MGM]#    HostName=192.168.1.252MGMS="192.168.1.253"#Define DBs in config.ini, intput ids of ExecuteOnComputer with whitespace separated.#e.g. "1 2" will generate the following code#  [DB]#    ExecuteOnComputer=1#  [DB]#    ExecuteOnComputer=2DBS="1"#Define APIs in config.ini, intput ids of ExecuteOnComputer with whitespace separated.#e.g. "1 0 1 2" will generate the following code#  [API]#    ExecuteOnComputer=1#  [API]#  [API]#    ExecuteOnComputer=1#  [API]#    ExecuteOnComputer=2APIS="1 0 2 2"################################################################################ Starting to install programs, do not modify them! ###############################################################################echo "Starting to install programs" > install.log#Find installation pathif [ $# -gt 0 ] then   INST_PATH="$1"else   INST_PATH="/usr/local/mysql"fiif [ 0 -lt $INST_SERVER ]then echo "Now, installing the MySQL servers..."  #Loop to install mysql servers INSTALLED_SERVER_COUNT=1 for PORT in $INST_PORTS do  #Define the current mysql server installation path   MYSL_PATH=$INST_PATH/$INSTALLED_SERVER_COUNT      #Configure mysql server   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    #Make mysql server   echo "Exec make && make install" >> install.log   make && make install      #Create var directory for mysql data   mkdir -p $MYSL_PATH/var      #Create my.cnf   echo "Create $MYSL_PATH/var/my.cnf" >> install.log   echo "[client]" > $MYSL_PATH/var/my.cnf   echo "port=$PORT" >> $MYSL_PATH/var/my.cnf   echo "socket=$MYSL_PATH/var/mysql.sock" >> $MYSL_PATH/var/my.cnf   echo "" >> $MYSL_PATH/var/my.cnf   echo "[mysqld]" >> $MYSL_PATH/var/my.cnf   echo "ndbcluster" >> $MYSL_PATH/var/my.cnf   echo "ndb_connectstring=host=$MGM_HOST:$MGM_PORT" >> $MYSL_PATH/var/my.cnf   echo "user=root" >> $MYSL_PATH/var/my.cnf   echo "port=$PORT" >> $MYSL_PATH/var/my.cnf   echo "basedir=$MYSL_PATH/" >> $MYSL_PATH/var/my.cnf   echo "datadir=$MYSL_PATH/var/" >> $MYSL_PATH/var/my.cnf   echo "socket=$MYSL_PATH/var/mysql.sock" >> $MYSL_PATH/var/my.cnf   echo "default-character-set=gbk" >> $MYSL_PATH/var/my.cnf   echo "default-storage-engine=INNODB" >> $MYSL_PATH/var/my.cnf   echo "max_connections=500" >> $MYSL_PATH/var/my.cnf   echo "" >> $MYSL_PATH/var/my.cnf   echo "query_cache_size=33M" >> $MYSL_PATH/var/my.cnf   echo "table_cache=1520" >> $MYSL_PATH/var/my.cnf   echo "tmp_table_size=16M" >> $MYSL_PATH/var/my.cnf   echo "thread_cache=38" >> $MYSL_PATH/var/my.cnf   echo "" >> $MYSL_PATH/var/my.cnf   echo "#MyISAM Specific options" >> $MYSL_PATH/var/my.cnf   echo "#skip-myisam" >> $MYSL_PATH/var/my.cnf   echo "" >> $MYSL_PATH/var/my.cnf   echo "#INNODB Specific options" >> $MYSL_PATH/var/my.cnf   echo "#skip-innodb" >> $MYSL_PATH/var/my.cnf   chmod 755 $MYSL_PATH/var/my.cnf      #Install mysql database   echo "Exec $MYSL_PATH/bin/mysql_install_db" >> install.log   $MYSL_PATH/bin/mysql_install_db      #Create mysql control script   if [ -e $MYSL_PATH/share/mysql/mysql.server ]   then       #Use default mysql control script        #Create mysql server start script    echo "Create $MYSL_PATH/start" >> install.log    echo "$MYSL_PATH/share/mysql/mysql.server start" > $MYSL_PATH/start    echo "Chmod 755 $MYSL_PATH/start" >> install.log    chmod 755 $MYSL_PATH/start        #Create mysql server stop script    echo "Create $MYSL_PATH/stop" >> install.log    echo "$MYSL_PATH/share/mysql/mysql.server stop" > $MYSL_PATH/stop    echo "Chmod 755 $MYSL_PATH/stop" >> install.log    chmod 755 $MYSL_PATH/stop        #Create mysql server restart script    echo "Create $MYSL_PATH/restart" >> install.log    echo "$MYSL_PATH/share/mysql/mysql.server restart" > $MYSL_PATH/restart    echo "Chmod 755 $MYSL_PATH/restart" >> install.log    chmod 755 $MYSL_PATH/restart   else        #Use custom mysql control script         #Create mysql server start script    echo "Create $MYSL_PATH/start" >> install.log    echo "$MYSL_PATH/libexec/mysqld &" > $MYSL_PATH/start    echo "Chmod 755 $MYSL_PATH/start" >> install.log    chmod 755 $MYSL_PATH/start        #Create mysql server stop script    echo "Create $MYSL_PATH/stop" >> install.log    echo "$MYSL_PATH/bin/mysqladmin -u root -p shutdown" > $MYSL_PATH/stop    echo "Chmod 755 $MYSL_PATH/stop" >> install.log    chmod 755 $MYSL_PATH/stop        #Create mysql server restart script    echo "Create $MYSL_PATH/restart" >> install.log    echo "$MYSL_PATH/bin/mysqladmin -u root -p shutdown" > $MYSL_PATH/restart    echo "$MYSL_PATH/libexec/mysqld &" >> $MYSL_PATH/restart    echo "Chmod 755 $MYSL_PATH/restart" >> install.log    chmod 755 $MYSL_PATH/restart   fi      #Clean mysql server to get ready for the next installation   echo "Exec make clean" >> install.log   make clean      INSTALLED_SERVER_COUNT=$(($INSTALLED_SERVER_COUNT + 1)) done  echo "Configurations! MySQL servers has been installed successfully." echo "" echo "1. To start mysql server, use the following command:" echo "  cd 
      
       " echo "  ./start" echo "" echo "2. To stop mysql server, use the following command:" echo "  cd 
       
        " echo "  ./stop" echo "" echo "3. To restart mysql server, use the following command:" echo "  cd 
        
         " echo "  ./restart"fi#Install cluster programsif [ 0 -lt $INST_CLUSTER ]then if [ -e $INST_PATH/1 ] then  echo "Now, installing the cluster programs..."     #Define the cluster installation path   CLST_PATH=$INST_PATH/cluster      #Create cluster directory   echo "Exec mkdir -p $CLST_PATH" >> install.log   mkdir -p $CLST_PATH    #Copy cluster binaries   echo "Exec cp $INST_PATH/1/bin/ndb* $CLST_PATH/" >> install.log   cp $INST_PATH/1/bin/ndb* $CLST_PATH/   echo "Exec cp $INST_PATH/1/libexec/ndb* $CLST_PATH/" >> install.log   cp $INST_PATH/1/libexec/ndb* $CLST_PATH/    #Create config.ini   echo "Create $CLST_PATH/config.ini" >> install.log          #Write default global configuration    echo "[TCP DEFAULT]" >> $CLST_PATH/config.ini    echo "" >> $CLST_PATH/config.ini    echo "[MGM DEFAULT]" >> $CLST_PATH/config.ini    echo "" >> $CLST_PATH/config.ini    echo "[DB DEFAULT]" >> $CLST_PATH/config.ini    echo "  NoOfReplicas=1" >> $CLST_PATH/config.ini    echo "" >> $CLST_PATH/config.ini    echo "[API DEFAULT]" >> $CLST_PATH/config.ini    echo "" >> $CLST_PATH/config.ini        #Write computers configuration    COMPUTER_ID=1    for COMPUTER in $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        #Write management server configuration    for MGM in $MGMS    do      echo "[MGM]" >> $CLST_PATH/config.ini      echo "  HostName=$MGM" >> $CLST_PATH/config.ini      echo "" >> $CLST_PATH/config.ini    done        #Write storage nodes configuration    for DB in $DBS    do      echo "[DB]" >> $CLST_PATH/config.ini      echo "  ExecuteOnComputer=$DB" >> $CLST_PATH/config.ini      echo "" >> $CLST_PATH/config.ini    done        #Write mysql servers configuration    for API in $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      #Create Ndb.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! Cluster programs has been installed successfully."   echo ""   echo "1. To start management server(MGM), use the following command:"   echo "  cd $CLST_PATH"   echo "  ./ndb_mgmd"   echo ""   echo "2. To start stroage node(DB), use the following command:"   echo "  cd $CLST_PATH"   echo "  ./ndbd"   echo ""   echo "3. To manage the cluster, use the following command:"   echo "  cd $CLST_PATH"   echo "  ./ndb_mgm"   echo ""   echo "4. Else, nothing to do.;)"   echo ""   echo "Enjoy yourself." else   echo "Cluster installation has been stopped, the reason is:";   echo "  No database server installed."   echo "So you can not use cluster programs in this machine!" fifi
        
       
      
2. Set the script permission to execute chmod 755 install. sh.
3. Execute the Script:./install. sh or./install

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.