一键mysql 5.6_MySQL5.6一键部署

#!/bin/sh#

PORT=$1Instance_Name="inst01"#实例名:多实例时目录层的区分标志

CMD="$2"DB_DIR="/data/mysql"# MySQL相关目录文件,本脚本为了方便都放一起了;data和log可以放到单独的分区里

Current_dir=`pwd`

INSTALL_RPM()

{

rpmlist="openssl-devel.x86_64 \

openssl098e.x86_64 \

openssl.x86_64 \

readline.x86_64 \

readline-devel.x86_64 \

crypto-utils.x86_64 \perl-DBD-MySQL.x86_64 \perl-IO-Socket-SSL.noarch" echo

echo '------------------------------------------'

echo 'Install rpm :'

echo

for str in${rpmlist};dorpm-qa|grep ${str%.*}>>/dev/null && echo "Installed :"${str} ||\

(yum install -y ${str} >> /dev/null && echo "Installed :"${str} )done

echo

echo '------------------------------------------'

echo}

ADD_USER()

{echo

echo '------------------------------------------'groupadd mysql&& useradd -g mysql mysql >/dev/null

echo "id mysql :"

idmysqlecho '------------------------------------------'}

MK_DIR()

{

Dir_data="${DB_DIR}/mysqlData/${Instance_Name}"Dir_log="${DB_DIR}/mysqlLog/${Instance_Name}"Dir_socket="${DB_DIR}/socket"Dir_conf="${DB_DIR}/config"

echo '--------------------------------------------'

if [ ! -d "${DB_DIR}" ];then

mkdir -pv ${DB_DIR}fi

mkdir -pv $Dir_data/{data,tmp}mkdir -pv $Dir_log/logsmkdir -pv $Dir_socketmkdir -pv $Dir_confecho

echo '[ show dirs : ]'

ls -lh ${DB_DIR}echo '---------------------------------------------------------'

echo}

TAR_MYSQL()

{echo '---------------------------------------------------------'PerconaName=`ls ${Current_dir} |grep Percona-Server`

PerconaVerson=`echo ${PerconaName}|awk -F'-' '{print $3}'|sed 's#\.##g'`tar -xf ${PerconaName}mv ${PerconaName%.tar*} percona${PerconaVerson}ln -s ${Current_dir}/percona${PerconaVerson} /usr/local/mysqlecho '---------------------------------------------------------'}

MOD_CONF()

{echo '---------------------------------------------------------'

mv ${Current_dir}/my${PORT}.cnf ${DB_DIR}/config/

ls -lh ${DB_DIR}/config/

echo '---------------------------------------------------------'}

GRANT_DIR()

{echo '---------------------------------------------------------'

chown -R mysql.mysql ${DB_DIR}chown -R mysql.mysql /usr/local/mysqlchown -R mysql.mysql /usr/local/mysql/

echo '---------------------------------------------------------'}

SET_PATH()

{echo

echo '---------------------------------------------------------'

echo 'export PATH=$PATH:/usr/local/mysql/bin' >>/etc/profilecat /etc/profile|grep '/usr/local/mysql/bin'

echo

echo '---------------------------------------------------------'}

INITIALIZE_DB()

{echo

echo '---------------------------------------------------------'cd/usr/local/mysql/./scripts/mysql_install_db --defaults-file=${DB_DIR}/config/my${PORT}.cnf --user=mysqlecho '---------------------------------------------------------'}

START_DB()

{echo '---------------------------------------------------------'cd/usr/local/mysql

./bin/mysqld_safe --defaults-file=${DB_DIR}/config/my${PORT}.cnf --user=mysql &

sleep 5

echo

echo "Check :"

echo "[ps -ef|grep mysql]"

ps -ef|grepmysqlecho "[netstat -ntpl|grep mysql]"netstat-ntpl|grepmysqlecho '---------------------------------------------------------'}

FIRST_LOGIN()

{echo '---------------------------------------------------------'

echo "Press Enter"mysql-uroot -p -S ${DB_DIR}/socket/mysql${PORT}.sock -e"delete from mysql.user where host !='localhost' or user=''"

echo "Press Enter"mysql-uroot -p -S ${DB_DIR}/socket/mysql${PORT}.sock -e"select user,host,password from mysql.user"

echo

echo

echo '---------------------------------------------------------'}

HELP()

{echo "---------------------------------------------------------------"printf"%-50s\n" "+ ToolName : dbtool"printf"%-50s\n" "+ ToolDesc : install single mysql"printf"%-50s\n" "+ Authors : Chris"printf"%-50s\n" "+ Help:"printf"%-50s\n" "For example:"printf"%-50s\n" "+ [root@monitor data]# ./dbtool 3002 in"printf"%-50s\n" "+ Parameter:"printf"%-50s\n" "+ ir --install rpm for mysql"printf"%-50s\n" "+ au --add user : mysql"printf"%-50s\n" "+ md --mkdir"printf"%-50s\n" "+ tm --tar -xf mysql.xx.tar.gz"printf"%-50s\n" "+ mc --mv myxx.cnf to config_file"printf"%-50s\n" "+ gd --grant to dirs"printf"%-50s\n" "+ sp --set environment"printf"%-50s\n" "+ in --initialization mysql"printf"%-50s\n" "+ sd --start mysql"printf"%-50s\n" "+ fg --first login mysql and delete unuserd users"

echo "---------------------------------------------------------------"}if [ $# -eq 2 ];then

case $2 in

'install_rpm'|'ir')

INSTALL_RPM

;;'add_user'|'au')

ADD_USER

;;'mk_dir'|'md')

MK_DIR

;;'tar_mysql'|'tm')

TAR_MYSQL

;;'mv_conf'|'mc')

MOD_CONF

;;'grant_dir'|'gd')

GRANT_DIR

;;'set_path'|'sp')

SET_PATH

;;'initialization_db'|'in')

INITIALIZE_DB

;;'start_db'|'sd')

START_DB

;;'firstlogin'|'fg')

FIRST_LOGIN

;;'install'|'install') # 一键部署

INSTALL_RPM

ADD_USER

MK_DIR

TAR_MYSQL

MOD_CONF

GRANT_DIR

SET_PATH

INITIALIZE_DB

START_DB

FIRST_LOGIN

;;*)

HELP

;;esac

elseHELP

exitfi

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值