oracle http server实例启动失败_shell脚本安装mysql5.7及多实例

bd6fbd569b665ff4d82a51a1d0fe087d.png
#!/bin/bash
仅支持centos
function hello
{
	echo "1、自动化安装mysql5.7"
	echo "2、自定义mysql5.7(支持多实例)"
	echo "q、退出"

	read -p "输入数字;" choice
	case $choice in
		1)
			BASE_MYSQL=/opt
			DATA_MYSQL=/data/mysql 
			PORT=3306
			CONFIG_FILE=/etc/my.cfg
			SERVER_ID=1
			if [[ SERVER_ID -eq 1 ]];then
				echo "PATH=$BASE_MYSQL/mysql5.7/bin:$PATH" >> ~/.bashrc
				source ~/.bashrc
			fi
			;;

		2)
			read -p "请输入程序解压的路径不带尾巴'/' :" BASE_MYSQL
			read -p "数据库存储目录路径不带尾巴'/' :" DATA_MYSQL
			read -p "请输入端口号:" PORT
			read -p "配置文件路径,如/etc/my.cfg:" CONFIG_FILE
			read -p "实例的服务id:" SERVER_ID  
			;;
		q)
			exit 0
			;;
		*)
			echo "输入有误,请重新输入!"
	esac
}



#创建mysql用户
function user
{
id mysql &> /dev/null

if [[ $? -eq 0 ]];then
	echo "mysql用户已经创建!"
else
	useradd -M -s /bin/false mysql
	
	echo "mysql用户已经创建!"
	
fi

#需要的库
if [[ -f /etc/redhat-release ]];then
	yum install -y libaio
else
	apt install  libaio* -y
fi	

}

#二进制安装包下载及解包
function File_Judge
{
		
		if [[ -f mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz ]] ;then
			echo "已找到二进制安装文件!开始解包!"
		else
			wget https://cdn.mysql.com/archives/mysql-5.7/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
			echo "下载完毕,开始解包!"
		fi
}

#解压数据库到指定目录
function Unpack
{
tar xvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz -C $BASE_MYSQL
oldname=`ls $BASE_MYSQL|grep my`
mv  $BASE_MYSQL/$oldname $BASE_MYSQL/mysql5.7

chown mysql:mysql $BASE_MYSQL/mysql5.7 -R
}
#加载环境变量

#初始化数据库
function initialize_database
{
##更改文件夹所属用户

mkdir $DATA_MYSQL -p
chown mysql:mysql $DATA_MYSQL -R

$BASE_MYSQL/mysql5.7/bin/mysqld --initialize --user=mysql  --basedir=$BASE_MYSQL/mysql5.7 --datadir=$DATA_MYSQL
}

#创建mysql所需配置文件
function make_configuration
{

if [[ SERVER_ID -eq 1 ]] ;then
	FILE_NAME="mysqld"
else
	FILE_NAME="mysqld$SERVER_ID"
fi

if [[ $SERVER_ID -eq 1 ]];then
	SOCKET=/tmp/mysql.sock
else
	SOCKET=/tmp/mysql$SERVER_ID.sock 
fi 
	##配置mysql.cfg文件
cat << EOG > $CONFIG_FILE
[mysqld]
bind-address = 0.0.0.0    #绑定地址
user=mysql       #虚拟用户
basedir=$BASE_MYSQL/mysql5.7   #程序所在目录
datadir=$DATA_MYSQL    #数据库存放目录
server_id=$SERVER_ID
port=$PORT
socket=$SOCKET
EOG

##配置自启动文件mysql5.7

	
cat << EOF > /etc/systemd/system/$FILE_NAME.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=$BASE_MYSQL/mysql5.7/bin/mysqld --defaults-file=$CONFIG_FILE
LimitNOFILE = 5000
EOF

systemctl daemon-reload

systemctl start $FILE_NAME

if [[ $? -eq 0 ]];then
	echo "mysql启动成功!"
else
	echo "启动失败,请检查脚本!"
fi

}



hello  
user #检查用户函数
if [[  -e $BASE_MYSQL/mysql5.7 ]];then
	echo "已找到二进制安装文件!"
else
	File_Judge
	Unpack
fi
initialize_database 
make_configuration 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值