用shell编程实现mysql 的一键安装

这是我写的第一片博客 如有不足之处 望大家多多指导

这里实现的是在Linux下的mysql的一键安装

当需要多次安装mysql的时候 一点点的按步骤打显然不方便

于是我想到了用一键安装的方法



一、具体要求

 (1)、要求安装Mysql数据库版本号及包名为:mysql-5.1.50.tar.gz

 (2)、安装目录为/usr/local/services

 (3)、数据存储目录为/dbdata

 (4)、配置文件存放为/etc/my.cnf

 (5)、用户名为mysql

 (6)、要求设置环境变量,服务加入开机自动启动,

二、源代码:

#!/bin/bash

#DESCREPTION:MYSQL AUTO_INSTALL

#BY:FJR

#DATA:2014_4_19

#COMMENT

#检查文件目录是否存在并编译安装

check_dir()

{

[ -d /etc/dconfig ] || mkdir /etc/dconfig -p //判断目录是否存在,不存在则创建

cd /etc/dconfig                                

[ -f my.cnf ] || touch my.cnf

[ -f jjconfig ] || touch jjconfig

cp ~/mysql-5.1.50.tar.gz /etc/dconfig/     //将家目录下的安装包拷贝到改目录下

tar -xvf mysql-5.1.50.tar.gz               //解压安装包    

cd mysql-5.1.50                            //进入解压后的目录编译  

./configure  ‘--prefix=/usr/local/services/mysql‘//声明安装目录

‘--localstatedir=/data/dbdata/‘                 //声明数据存储目录

‘--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock‘//声明socket 路径

‘--with-charset=utf8‘                               //用的是中文

‘--with-extra-charsets=complex‘

‘--with-pthread‘

‘--enable-thread-safe-client‘

‘--with-ssl‘

‘--with-client-ldflags=-all-static‘

‘--with-mysqld-ldflags=-all-static‘

‘--with-plugins=partition,federated,ndbcluster,innobase,csv,blackhole,myisam,innodb_plugin,heap,archive‘

‘--enable-shared‘

‘--enable-assembler‘


make && make install    //安装


}

#检查有无错误

check_error()

{

if [ $? -ne 0 ];then

echo " fail...">>/etc/mysql_error.log

return 1

else

return 0

fi

}

#配置文件

config_file()

{

cd /etc/dconfig

if [ -f my.cnf ]; then

echo"

[mysqld]

basedir=/usr/local/services //安装目录

datadir=/data/dbdata  //数据存储目录

socket=/var/run/mysqld/mysql5.socket

user=mysql   //用户为mysql

">> /etc/dconfig/my.cnf

check_error /etc/dconfig/my.cnf

fi

}

#初始化权限设置

inition()

{

[ -d /data/dbdata ] || mkdir /data/dbdata/ -p

chown -R mysql:mysql /usr/local/services/mysql //授予目录mysql权限

chown -R mysql:mysql /data/dbdata/

/usr/local/services/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/services/mysql --datadir=/data/dbdata

cp /usr/local/services/mysql/share/mysql/mysql.server /etc/init.d/mysqld

chmod 755 /etc/init.d/mysqld

cd /etc/init.d

cat mysqld | sed -i ‘s/^basedir=$/basedir=\/usr\/local\/services/g‘ mysqld//将存储目录写入

cat mysqld | sed -i ‘s/^datadir=$/datadir=\/data\/dbdata/g‘ mysqld

}

#设置环境变量

set_env()

{

cd /etc

cat profile | sed -i ‘s/^MYSQL=$/MYSQL=\/usr\/local\/services\/mysql\/bin/g‘ profile


cat profile | s

ed -i ‘s/^PATH=$/PATH=$PATH:$MYSQL/g‘ profile

export PATH

source /etc/profile

/etc/init.d/mysqld start

}

main()

{

check_dir

if [ $? -eq 0 ];then

config_file

inition

set_env

else

exit 1

fi

}

main;

实现

本文出自 “FJR的博客” 博客,请务必保留此出处http://5769221.blog.51cto.com/5759221/1398658

用shell编程实现mysql 的一键安装,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。