脚本代码:新建文件将代码拷贝修改文件名称: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