这是我写的第一片博客 如有不足之处 望大家多多指导
这里实现的是在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