您的位置:首页 > 运维架构 > Linux

linux下mysql安装脚本

2011-12-18 15:00 281 查看
#!/bin/sh

SOURCE_DIR="/opt/source/"
TARGET_DIR="/usr/local/"
SOFT_ADDR="http://img.xxx.com/soft/"
WGET="/usr/bin/wget"

MysqlVersion="5.1.50"

MYSQL_VARS="--prefix=${TARGET_DIR}mysql --enable-assembler --enable-threadsafe-client --with-unix-socket-path=/tmp/mysql.sock --without-debug --with-charset=utf8 --with-extra-charsets=all --with-client-ldflags=-all-static --with-mysqld-ldflags=-all-static --with-plugins=innobase,innodb_plugin"

###### CREATE DIRECTORIES ######
if [ ! -d ${SOURCE_DIR} ]; then
mkdir -p ${SOURCE_DIR}
fi
if [ ! -d ${TARGET_DIR} ]; then
mkdir -p ${TARGET_DIR}
fi

########### INSTALL MYSQLSERVER######
mysqlserver()
{
cd ${SOURCE_DIR}
if [ ! -f mysql-${MysqlVersion}.tar.gz ]; then
${WGET} ${SOFT_ADDR}mysql-${MysqlVersion}.tar.gz
fi

USER=`cat /etc/passwd | grep mysql | awk -F ':' '{print $1}'`
if [ ${USER}!="mysql" ]; then
adduser mysql
fi

if [ -d mysql-${MysqlVersion} ]; then
rm -rf mysql-${MysqlVersion}
fi

tar -zxvf mysql-${MysqlVersion}.tar.gz
cd ./mysql-${MysqlVersion}/
if [ -d ${TARGET_DIR}mysql ]; then
mv ${TARGET_DIR}mysql ${TARGET_DIR}mysql.bak
fi

echo -e "NOW, START INSTALL MYSQL\n\n\n"
./configure ${MYSQL_VARS}
make && make install && make clean

${TARGET_DIR}mysql/bin/mysql_install_db --user=mysql
chown -R mysql:mysql ${TARGET_DIR}mysql
cd support-files/
make
cp my-huge.cnf /etc/my.cnf

echo "${TARGET_DIR}mysql/bin/mysqld_safe --user=mysql &" >> /etc/rc.local

if [ -f /etc/init.d/mysqld ]; then
rm -rf /etc/init.d/mysqld
fi
ln -s  ${TARGET_DIR}mysql/share/mysql/mysql.server /etc/init.d/mysqld

echo -e "INSTALL MYSQL END!\n\n\n"
sleep 5;
}

########### INSTALL MYSQL ########
mysql()
{
cd ${SOURCE_DIR}
if [ ! -f mysql-${MysqlVersion}.tar.gz ]; then
${WGET} ${SOFT_ADDR}mysql-${MysqlVersion}.tar.gz
fi

USER=`cat /etc/passwd | grep mysql | awk -F ':' '{print $1}'`
if [ ${USER}!="mysql" ]; then
adduser mysql
fi

if [ -d mysql-${MysqlVersion} ]; then
rm -rf mysql-${MysqlVersion}
fi

tar -zxvf mysql-${MysqlVersion}.tar.gz
cd ./mysql-${MysqlVersion}/
if [ -d ${TARGET_DIR}mysql ]; then
mv ${TARGET_DIR}mysql ${TARGET_DIR}mysql.bak
fi

echo -e "NOW, START INSTALL MYSQL\n\n\n"
./configure ${MYSQL_VARS}
make && make install && make clean

chmod +w ${TARGET_DIR}mysql
chown -R mysql:mysql ${TARGET_DIR}mysql
}

yumtools()
{
yum -y install gcc gcc-c++ autoconf
}

############# SHOW HELP ###############
usage()
{
echo -e "\n\t\tUsage:"
echo -e "\t\t-----------------------------------------------------------------------------------"
echo -e "\t\t| $0 <yumtools|mysql|mysqlserver>"
echo -e "\t\t-----------------------------------------------------------------------------------"
cat<<EOF
| yumtools       -- install gcc gcc-c++ autoconf;
| mysql          -- install mysql;
| mysqlserver    -- install mysqlserver;
EOF
echo -e "\t\t------------------------------------------------------------------------------------"
echo -e "\n\n"
}

########### main ##################
case $1 in
yumtools)
yumtools
;;
mysql)
mysql
;;
mysqlserver)
mysqlserver
;;
*)
usage
exit 1
;;
esac
exit 0
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: