#!/bin/bash
#MySQL一键安装脚本
#脚本运行前请确认本机没有安装其他版本的MySQL
#运行脚本前请详细阅读my.cnf文件
PASSWORD=`cat my.cnf | grep password | awk -F '=' '{print $2}'` #数据库root用户密码(在my.cnf文件中修改)
MYSQL_FILE='mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz' #二进制安装包名
MYSQL_SIGN=`echo ${MYSQL_FILE} | sed 's/.......$//'` #解压后安装包名
INSTALL_DIR='/usr/local' #安装路径
DATA_DIR=`cat my.cnf | grep datadir | awk -F '=' '{print $2}'` #数据库文件存放路径(在my.cnf文件中修改)
if [ -e ${INSTALL_DIR}/mysql ];then echo -e "\033[31m错误:${INSTALL_DIR}/mysql已存在,无法安装\033[0m" ; exit 1 ; fi
if [ -e ${DATA_DIR} ];then echo -e "\033[31m错误:${DATA_DIR}已存在,无法安装\033[0m" ; exit 2 ; fi
INSTALL(){
yum -y install libaio >/dev/null 2>&1
LIBAIO=`yum list installed | grep libaio | wc -l`
if [ ${LIBAIO} -eq 0 ];then echo -e "\033[31m错误: libaio 扩展库安装失败\033[0m" ; exit 3 ; fi
tar zxf ${MYSQL_FILE}
mv ${MYSQL_SIGN} ${INSTALL_DIR}/${MYSQL_SIGN}
ln -s ${INSTALL_DIR}/${MYSQL_SIGN} ${INSTALL_DIR}/mysql
}
INSTALL
#安装
CREATE_GRANT(){
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
mkdir ${INSTALL_DIR}/${MYSQL_SIGN}/mysql-files
chmod 750 ${INSTALL_DIR}/${MYSQL_SIGN}/mysql-files
chown mysql:mysql -R ${INSTALL_DIR}/${MYSQL_SIGN}
mkdir ${DATA_DIR}
chown mysql:mysql -R ${DATA_DIR}
cp my.cnf /etc/my.cnf
}
CREATE_GRANT
#创建数据文件夹与mysql-file文件夹并授予权限
INITIALIZE(){
${INSTALL_DIR}/mysql/bin/mysqld --initialize --user=mysql
${INSTALL_DIR}/mysql/bin/mysql_ssl_rsa_setup >/dev/null 2>&1
${INSTALL_DIR}/mysql/bin/mysqld_safe --user=mysql &
for i in `seq 10`
do
sleep 5
PORT=`netstat -anptu | grep 3306 | wc -l`
if [ ${PORT} -ne 0 ];then break ;fi
done
}
INITIALIZE
#初始化mysql并开启ssl文件传输
UPDATA_PASS(){
AUTO_PASSWORD=`cat ${DATA_DIR}/error.log | grep password | awk '{print $NF}' | head -1`
${INSTALL_DIR}/mysql/bin/mysqladmin -uroot -p"${AUTO_PASSWORD}" password ${PASSWORD}
}
UPDATA_PASS
#修改自动生成密码,修改后密码在配置文件password项设置
CONTROL(){
cp ${INSTALL_DIR}/mysql/support-files/mysql.server /etc/init.d/mysql.server
}
#CONTROL
#mysql控制命令 可以直接启动/重启/停止mysql服务
mysql一键安装脚本
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。