linux 利用脚本安装mysql

脚本代码:新建文件将代码拷贝修改文件名称:mysql_install.sh

#!/bin/bash
#-------------CopyRight-------------  
#   Name:MySQL Install 5.6
#   Version Number:1.02
#   System:CentOS7 
#   Type:shell 
#   Language:bash shell  
#   Date:2019-11-11
#   Author:Lxq
#------------------------------------  
##########################################################
#功能:使用mysql二进制包安装mysql-5.6
##########################################################
#mysql下载地址:https://dev.mysql.com/downloads/mysql/mysql-5.6.45-linux-glibc2.12-x86_64.tar.gz
#shell执行方式:
#sh mysql_install.sh mysql-5.6.45-linux-glibc2.12-x86_64.tar.gz
###########################################################
#以下变量按需修改,目录自动创建
MYSQL_PORT=3307           #MySQL端口
MYSQL_BASEDIR=/data/mysql  #MySQL软件目录
MYSQL_DATADIR=/data/MySQLData  #MySQL数据目录
#以下变量无需修改--------------------------.64.174------------------
MYSQL_USER=root
MYSQL_PWD=`openssl rand -base64 9`
MYSQL_CONN="${MYSQL_BASEDIR}/bin/mysql -u${MYSQL_USER} -p${MYSQL_PWD}"
MYSQL_TAR=$1
#等待30秒时间,确认变量配置
COUNT=30
while [ ${COUNT} -gt 0 ]
do
	echo "请确认变量配置是否正确,${COUNT}秒后开始安装,按Ctrl+C中断!"
	echo "MySQL端口:MYSQL_PORT=${MYSQL_PORT}"
	echo "MySQL软件目录:MYSQL_BASEDIR=${MYSQL_BASEDIR}"
	echo "MySQL数据目录:MYSQL_DATADIR=${MYSQL_DATADIR}"
	sleep 1
	clear
	let COUNT=COUNT-1
done
#依赖包安装
function rpm_install 
{
sudo rpm -qa|grep autoconf > /dev/null 2>&1 && \
sudo rpm -qa|grep libaio-devel > /dev/null 2>&1
if [[ $? -ne 0 ]]; then
	echo "正在安装 autoconf 和 libaio-devel ..."
	sudo yum -y install autoconf libaio-devel>/dev/null 2>&1
    if [[ $? -ne 0 ]]; then
		echo " autoconf 和 libaio-devel 安装失败,请正确配置软件源!"
    	exit 1
 	fi
fi
}
#MySQL安装
function mysql_install
{
sudo sed -i "s@SELINUX=enforcing@SELINUX=disabled@" /etc/selinux/config
setenforce 0
sudo mkdir -p ${MYSQL_BASEDIR}
sudo mkdir -p ${MYSQL_DATADIR}
sudo tar -xvf ${MYSQL_TAR} -C ${MYSQL_BASEDIR} --strip-components 1
sudo useradd -r mysql -s /sbin/nologin
sudo chown -R mysql.mysql ${MYSQL_DATADIR}
sudo chown -R mysql.mysql ${MYSQL_BASEDIR}
#初始化MySQL
sudo ${MYSQL_BASEDIR}/scripts/mysql_install_db --basedir=${MYSQL_BASEDIR} \
--datadir=${MYSQL_DATADIR} --user=mysql --pid-file=${MYSQL_BASEDIR}/mysql.pid ||exit -1
#创建MySQL启动脚本
sudo cp ${MYSQL_BASEDIR}/support-files/mysql.server /etc/init.d/mysqld
sudo chmod +x /etc/init.d/mysqld
#备份配置文件
if [[ ! -f /etc/my.cnf.bk ]]; then
	sudo cp /etc/my.cnf /etc/my.cnf.bk
fi
#修改配置文件
sudo cat>/etc/my.cnf <<END
[mysqld]
port = ${MYSQL_PORT}
basedir = ${MYSQL_BASEDIR}
datadir = ${MYSQL_DATADIR}
socket = /tmp/mysql.sock
pid-file = ${MYSQL_BASEDIR}/mysql.pid
log-bin=mysql-bin
binlog_format=mixed
expire_logs_days=7
character-set-server = utf8
max_connections = 1000
slow_query_log = on
log_slave_updates = on
long_query_time=10
default_storage_engine = InnoDB
innodb_file_per_table = 1
innodb_open_files = 500
innodb_buffer_pool_size = 64M
innodb_write_io_threads = 4
innodb_read_io_threads = 4
innodb_thread_concurrency = 0
innodb_purge_threads = 1
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 2M
innodb_log_file_size = 32M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
interactive_timeout = 28800
wait_timeout = 28800
lower_case_table_names=1
event_scheduler=1
skip-name-resolve=1
max_allowed_packet=30M
END
#修改环境变量
sudo echo  "export MYSQL_HOME=${MYSQL_BASEDIR}" >> /etc/profile
sudo echo  "export PATH=\$MYSQL_HOME/bin:\$PATH" >> /etc/profile
source /etc/profile
#启动MySQL
sudo /etc/init.d/mysqld start
#设置开机启动
sudo echo "/etc/init.d/mysqld start" >>/etc/rc.local
sudo chmod +x /etc/rc.d/rc.local
#删除空用户
sudo ${MYSQL_BASEDIR}/bin/mysqladmin -u root password "${MYSQL_PWD}"
sudo ${MYSQL_CONN} -e "delete from mysql.user where user=''; \
delete from mysql.db where user='';"
#保存MySQL安装信息
sudo echo "port:${MYSQL_PORT}" >>${MYSQL_BASEDIR}/mysql.txt
sudo echo "basedir:${MYSQL_BASEDIR}" >>${MYSQL_BASEDIR}/mysql.txt
sudo echo "datadir:${MYSQL_DATADIR}" >>${MYSQL_BASEDIR}/mysql.txt
sudo echo "root passwd:${MYSQL_PWD}" >>${MYSQL_BASEDIR}/mysql.txt
sudo echo "mysql初始密码保存在${MYSQL_BASEDIR}/mysql.txt"	
}

case $1 in
"")
echo "Usage: sh $0 [压缩包路径]"
;;
*)
if test ! -f $1
then
	echo "Error:压缩包名称或路径错误!"
else
	rpm_install
	mysql_install
fi
;;
esac

 安装包是百度网盘地址:

链接:https://pan.baidu.com/s/1-S-Lb-bN3fGw7TPMPJwyoQ 
提取码:k5jl

安装步骤:

sh mysql_install.sh mysql-5.6.46-linux-glibc2.12-x86_64.tar.gz

安装完成之后无法使用:
	## 把mysql安装目录,比如mysqlpath/bin/mysql,映射到/usr/local/bin
	## cd /usr/local/bin
	## ln -fs /mysqlpath/bin/mysql mysql
发布了35 篇原创文章 · 获赞 22 · 访问量 928

猜你喜欢

转载自blog.csdn.net/weixin_38982591/article/details/104028965
今日推荐