以下脚本由杨良伟同学一手编写,我只是为了其他文章方便转载才放进自己的文章,以下有附件可以下载,将txt改成sh,赋予执行位,即可执行自动安装,忘转载者标明出处,谢谢。

杨良伟同学blog链接:

http://http//ylw6006.blog.51cto.com/

有兴趣的可以进去看看

下载链接:

mysql5.1.36_auto-install.sh

http://down.51cto.com/data/156552

-----------------------------------------------------------------------------------------------------------------------------------------------------

#!/bin/sh
#function:use this script automatic install mysql.5.1.36...
#author:lw.yang

################################################################################################################################################################################
       
###:remove default rpm packets if them has been installed...
service mysqld stop

  if [ -f /usr/bin/mysqld_safe ];then
     echo "Remove default mysql-server RPM packets..."
     yum -y remove mysql-server > /dev/null 2>&1
     yum -y groupremove "MySQL Database" > /dev/null 2>&1
  fi
 

  if [ -f /usr/bin/mysqldump ];then
     echo "Remove default mysql-client RPM packets..."
     yum -y remove mysql > /dev/null 2>&1
  fi
 

###:add private group and user for mysql,then create data storage directory...

  echo "Setting Environment variables..."
  userdel  -r mysql     > /dev/null 2>&1
  groupdel -r mysql     > /dev/null 2>&1
  groupadd -g 27 mysql  > /dev/null 2>&1
  useradd -g mysql -u 27 -d /dev/null -s /sbin/nologin mysql  > /dev/null 2>&1

 if [ ! -d /mydata ];then
    echo "Creating data directory..."
    mkdir /mydata
 fi
 
 chown -R mysql.mysql /mydata

###:Download and install mysql...

echo "Download and install mysql..."

 if [ ! -d /usr/local/src/tarbag ];then
  echo  "Creating tarbag  diretcory for install..."
  mkdir /usr/local/src/tarbag 
 fi

 if [ ! -d /usr/local/src/software ];then
  echo  "Creating software directory for install..."
  mkdir /usr/local/src/software 
 fi

 

 if [ ! -f /usr/local/src/tarbag/mysql-5.1.36.tar.gz ];then
  echo "Download mysql ..."
  cd /usr/local/src/tarbag &&  wget http://downloads.mysql.com/archives/mysql-5.1/mysql-5.1.36.tar.gz 
  exit 2
 fi
 
  
 if  [ ! -d /usr/local/src/software/mysql-5.1.36 ];then
  echo "Extract mysql source code ..."
  tar -zxvf mysql-5.1.36.tar.gz -C /usr/local/src/software > /dev/null
  exit 2
 fi
 
 cd /usr/local/src/software/mysql-5.1.36
 ./configure --prefix=/usr/local/mysql --datadir=/mydata --with-charset=utf8 --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-ssl --with-embedded-server --enable-local-infile --enable-assembler --with-plugins=partition > /dev/null
 if  [ $? != 0 ];then
  echo "Configure mysql failure,Please check compile Environment..."
  exit 2
 fi
 
 make -j 3 > /dev/null
 if [ $? != 0 ];then
  echo "Make software failure,please look config.log for more information..."
 exit 2
 fi

 make install > /dev/null 2>&1
 if [ $? = 0 ];then
  echo "Mysql install complete done ..."
  else echo "Something wrong between installation..."
  exit 2
 fi


###:Initialization mysql...

   echo "Initialization mysql..."
   rm -rf /etc/my.cnf
   rm -rf /etc/init.d/mysqld
   cp  /usr/local/src/software/mysql-5.1.36/support-files/my-medium.cnf /etc/my.cnf
   sed -i '38i\max_connection = 2000'      /etc/my.cnf
   sed -i '39i\datadir = /mydata'          /etc/my.cnf
   sed -i '40i\basedir = /usr/local/mysql' /etc/my.cnf
   sed -i '41i\expire_logs_days = 3'       /etc/my.cnf
   sed -i '42i\max_binlog_size = 512M'     /etc/my.cnf
   cp  /usr/local/src/software/mysql-5.1.36/support-files/mysql.server /etc/init.d/mysqld
   chmod +x /etc/init.d/mysqld
   chkconfig --add mysqld
   chkconfig mysqld on
   chown -R mysql.mysql /usr/local/mysql
  

  echo "Modify mysql-server main parameter file..."
  /usr/local/mysql/bin/mysql_install_db --user=mysql --datadir=/mydata > /dev/null
      if [ $? = 0 ];then
         echo " Initialization mysql complete done ..."
         else echo "Something wrong between Initialization..."
         exit 2
      fi

  chown -R mysql.mysql /usr/local/mysql
  cp -rp /mydata/mysql /usr/local/mysql/share/
  service mysqld start
 

-----------------------------------------------------------------------------------------------------------------------------------------------------

目前脚本运行完可能无法正常启动,那就手动初始化一下mysql

# /usr/local/mysql/bin/mysql_install_db --user=mysql --datadir=/mydata
WARNING: The host '158LDAP' could not be looked up with resolveip.
This probably means that your libc libraries are not 100 % compatible
with this binary MySQL version. The MySQL daemon, mysqld, should work
normally with the exception that host name resolving will not work.
This means that you should use IP addresses instead of hostnames
when specifying MySQL privileges !
Installing MySQL system tables...
OK
Filling help tables...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:

/usr/local/mysql/bin/mysqladmin -u root password 'new-password'
/usr/local/mysql/bin/mysqladmin -u root -h 158LDAP password 'new-password'

Alternatively you can run:
/usr/local/mysql/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr/local/mysql ; /usr/local/mysql/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/local/mysql/mysql-test ; perl mysql-test-run.pl

Please report any problems with the /usr/local/mysql/scripts/mysqlbug script!

The latest information about MySQL is available at http://www.mysql.com/
Support MySQL by buying support/licenses from
http://shop.mysql.com/

出现以上提示即初始化成功

# service mysqld start
Starting MySQL.                                            [  OK  ]

最后为了方便mysql命令的调用,可以将mysql/bin的路径加入到环境变量中

在/etc/profile文件的 unset  i 上一行加入如下内容

pathmunge /usr/local/mysql/bin

并运行下面的命令即可

# source  /etc/profile