为了方便安装,也为了规范应用,写了以下脚本,没有什么技术含量,就是为了实用。另外,做了简单注释。

###########################################
#!/bin/bash
#write by eben 2010 7 1
#this shell is a test doc.
############################################
#定义路径变量,方便以后移植使用
APP=/Data/app
SOF=/Data/software
SQL=mysql-5.1.42

#添加mysql的用户组和用户,该用户组及用户专为mysql应用而建
groupadd mysql
useradd mysql -g mysql  #添加用户并同时添加到mysql组里

cd $SOF
tar -zxf $SQL-linux-x86_64.tar.gz     #对压缩包解压
cd $SOF/$SQL

#编译,包括路径,安符集等。
make clean
./configure --with-extra-charsets=all --prefix=$APP/$SQL --localstatedir=$APP/$SQL/data --with-unix-socket-path=$APP/$SQL/mysql.sock --sysconfdir=$APP/$SQL/etc --with-charset=gbk --enable-thread-safe-client --libdir=$APP/$SQL/lib && make && make install
#创建MYSQL所需的三个目录
cd $APP/$SQL
mkdir data etc log #(创建三个目录到/Data/app/mysql-5.1.42/)
#创建my.cnf文件,
cd etc
#(添加如下内容):
echo    [mysqld]        >> my.cnf
echo    datadir=/Data/app/mysql-5.1.42/data     >> my.cnf
echo    socket=/Data/app/mysql-5.1.42/mysql.sock        >> my.cnf

echo    skip-name-resolve       >> my.cnf
echo    max_connections=1000    >> my.cnf
echo    long_query_time=2       >> my.cnf
echo    log-bin=binlog  >> my.cnf

echo    [mysql.server]  >> my.cnf
echo    user=mysql      >> my.cnf
echo    basedir=/Data/app/mysql-5.1.42  >> my.cnf

echo    [mysqld_safe]   >> my.cnf
echo    err-log=/Data/app/mysql-5.1.42/log/mysqld.log   >> my.cnf
echo    pid-file=/Data/app/mysql-5.1.42/mysqld.pid      >> my.cnf

echo    [client]        >> my.cnf
echo    socket=/Data/app/mysql-5.1.42/mysql.sock        >> my.cnf
echo    default-character-set = utf8    >> my.cnf


#给安装目录授权:
chown mysql:mysql  $APP/$SQL

#初始化mysqld:
$APP/$SQL/bin/mysql_install_db --user=mysql

#启动mysql
$APP/$SQL/bin/mysqld_safe --user=mysql &

#测试安装是否成功,并给出相应的提示。我是通过查看mysql 的进程数来确定mysql是否正常启动。

x=(`ps -ef|grep mysql|wc -l`)     #查看系统中的mysql进程数,并给变量x
if (( $x>1 ))   #比较进程数是否大于一,如果大于一,则说明mysql已正常运行。这种方法有点笨,但也能解决问题。
OK="mysql is starting"
BAD="mysql is not successful,please make sure"
then echo "$OK";     #提示成功
else echo "$BAD";   #提示失败
fi            #判断结束