centos7下断网通过脚本安装mysql5.6.50,并实现开机自启动

需求背景:
机房或者客户现场可能会出现无网络的情况,但是需要安装mysql到服务器,并且实现开机自启动

类似方式安装nginx可以查看本人另一篇文章,附上点击链接:
类似方式安装mongodb可以查看本人另一篇文章,附上点击链接;
类似方式安装JDK1.8可以查看本人另一篇文章,附上点击链接;
类似方式安装redis可以查看本人另一篇文章,附上点击链接;

实现思路:
下载需要的tar.gz包,通过解压tar.gz的安装方式进行安装,本人通过Vmware来模拟需求背景,真实情况也一样,可以通过U盘或者光盘达到上传安装包的效果。

第一步:
安装的mysql版本tar.gz----------mysql-5.6.50-linux-glibc2.12-x86_64.tar.gz
下载地址:
https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.50-linux-glibc2.12-x86_64.tar.gz (直接就能下载,不能的话就自己去找过一个安装包)

或者网盘下载:
链接:https://pan.baidu.com/s/1IN_uGcDLtxetKlcAaeiZLQ
提取码:1030

第二步
脚本文件,我是直接把下载好的tar.gz包和脚本文件一起放在/root路径下面
在这里插入图片描述

第三步
mysql.sh文件内容

#!/bin/bash
# Mysql安装包所在路径,需要带上包名,示例:PACKAGE_FULL_WAY=/root/mysql-5.6.50-linux-glibc2.12-x86_64.tar.gz
PACKAGE_FULL_WAY=/root/mysql-5.6.50-linux-glibc2.12-x86_64.tar.gz
# Mysql安装主目录,示例:INSTALL_HOME=/usr/local/mysql
INSTALL_HOME=/usr/local/mysql
# Mysql数据库root用户密码,示例:USER_PASSWD=root
USER_PASSWD=root
 
#check user
if [[ "$UID" -ne 0 ]]; then
    echo "ERROR: the script must run as root"
    exit 3
fi
function log_info() {
    echo "[$(date -d today +"%Y-%m-%d %H:%M:%S %:::z")] $1"
}
 
function log_error() {
    echo -e "[$(date +"%Y-%m-%d %H:%M:%S %Z%:z")] [ERROR] $* \n"
    exit 1
 
}
 
function check_result() {
    local ret_code=$1
    shift
    local error_msg=$*
    if [[ ${ret_code} -ne 0 ]]; then
        log_error ${error_msg}
    fi
}
 
# 校验参数
function check_param() {
    if [[ ! -n ${PACKAGE_FULL_WAY} ]] || [[ ! -n ${INSTALL_HOME} ]] || [[ ! -n ${USER_PASSWD} ]]; then
        log_error "Param: PACKAGE_FULL_WAY INSTALL_HOME USER_PASSWD can not be null"
    fi
    if [[ ! -f ${PACKAGE_FULL_WAY} ]]; then
        log_error "Please check the config of PACKAGE_FULL_WAY dose config Mysql package name"
    fi
}
 
function check_mysql_process() {
    local mysql_process_count=`ps -ef |grep ${INSTALL_HOME}|grep -vwE "grep|vi|vim|tail|cat"|wc -l`
    if [[ ${mysql_process_count} -gt 0 ]]; then
        log_error "please stop and uninstall the mysql first"
    fi
}
 
# 新建mysql用户
function add_user() {
    #create group mysql
    grep "^mysql" /etc/group &> /dev/null
    if [[ $? -ne 0 ]]; then
        groupadd mysql
    fi
 
    #create user mysql
    id mysql &> /dev/null
    if [[ $? -ne 0 ]]; then
        useradd -g mysql mysql
        chage -M 99999 mysql
    fi
}
 
# 安装Mysql
function install_mysql() {
    # 创建安装主目录
    mkdir -p ${INSTALL_HOME}
    # 解压mysql到安装主目录
    tar -zxvf ${PACKAGE_FULL_WAY} -C ${INSTALL_HOME} > /dev/null 2>&1
    check_result $? "unzip Mysql package error"
    local package_name=`ls ${INSTALL_HOME} |grep mysql`
    mv ${INSTALL_HOME}/${package_name}/* ${INSTALL_HOME}
    rm -rf ${INSTALL_HOME}/${package_name}
    cd ${INSTALL_HOME}
 
    # 新建数据库目录
    mkdir -p ${INSTALL_HOME}/data/mysql
    chown -R mysql:mysql ${INSTALL_HOME}
 
    # 安装并指定用户和data文件夹位置
    ./scripts/mysql_install_db --user=mysql --datadir=${INSTALL_HOME}/data/mysql
 
    # 复制mysql到服务自动启动里面
    cp -pf ${INSTALL_HOME}/support-files/mysql.server /etc/init.d/mysqld
    chmod 755 /etc/init.d/mysqld
    # 复制配置文件到etc下
    cp -pf ${INSTALL_HOME}/support-files/my-default.cnf /etc/my.cnf
    chmod 755 /etc/my.cnf
    # 修改basedir和datadir
    sed -i "s#^basedir=.*#basedir=${INSTALL_HOME}#" /etc/init.d/mysqld
    sed -i "s#^datadir=.*#datadir=${INSTALL_HOME}\/data\/mysql#" /etc/init.d/mysqld
    # 加入环境变量,方便使用mysql命令,但是需要source /etc/profile
    echo "###MYSQL_PATH_ENV_S" >>/etc/profile
    echo "export PATH=${INSTALL_HOME}/bin:\$PATH" >> /etc/profile
    echo "###MYSQL_PATH_ENV_E" >> /etc/profile
    # 启动Mysql
    start
    # 修改Mysql用户root密码
    ./bin/mysqladmin -u root -h localhost.localdomain password ${USER_PASSWD}
    cd ${INSTALL_HOME}
 
# 开启远程登录权限
./bin/mysql -h127.0.0.1 -uroot -p${USER_PASSWD} << EOF
grant all privileges on *.* to root@'%' identified by 'root'; flush privileges;
EOF
    chown -R mysql:mysql ${INSTALL_HOME}
	 #添加自启动
	 chmod 777 /etc/rc.local
    echo "service mysqld start" >> /etc/rc.local
    echo "自启动添加成功"
    service mysqld start

}
 
# 安装Mysql
function install() {
    log_info "+++++++++++ step 1 ++++++++++++++++"
    check_param
    log_info "check_param finish"
 
    log_info "+++++++++++ step 2 ++++++++++++++++"
    check_mysql_process
    log_info "check_mysql_process finish"
 
    log_info "+++++++++++ step 3 ++++++++++++++++"
    add_user
    log_info "add_user finish"
 
    log_info "+++++++++++ step 4 ++++++++++++++++"
    install_mysql
    log_info "install_mysql finish"
}
 
# 卸载Mysql
function uninstall() {
    # 如果Mysql仍启动则停止Msql
    local mysql_process_count=`ps -ef |grep ${INSTALL_HOME}|grep -vwE "grep|vi|vim|tail|cat"|wc -l`
    if [[ ${mysql_process_count} -gt 0 ]]; then
        stop
    fi
 
    # 删除创建的文件
    rm -rf ${INSTALL_HOME}
    rm -rf /etc/init.d/mysqld
    rm -rf /etc/my.cnf
 
    # 删除sock文件
    if [[ -f /tmp/mysql.sock ]]; then
        rm -rf /tmp/mysql.sock
    fi
 
    # 删除配置的环境变量
    sed -i '/###MYSQL_PATH_ENV_S/,/###MYSQL_PATH_ENV_E/d' /etc/profile
 
    #删除用户和用户组
    id mysql &> /dev/null
    if [[ $? -eq 0 ]]; then
        userdel mysql
    fi
	# 关闭自启动
	rm -rf /etc/init.d/mysqld
	chkconfig mysql off
    log_info "uninstall Mysql success"
}
 
# 停止Mysql
function stop() {
    su - mysql -c "service mysqld stop"
}
 
# 启动Mysql
function start() {
    su - mysql -c "service mysqld start"
}
 
# Mysql状态检查
function check_status() {
    su - mysql -c "service mysqld status"
}
 
function usage() {
    echo "Usage: $PROG_NAME {start|stop|install|uninstall|check_status}"
    exit 2
 
}
 
PROG_NAME=$0
ACTION=$1
 
case "$ACTION" in
    start)
        start
    ;;
    stop)
        stop
    ;;
    restart)
        stop
        start
    ;;
    install)
        install
    ;;
    uninstall)
        uninstall
    ;;
    check_status)
        check_status
    ;;
    *)
        usage
    ;;
esac

         

其他基本不用改,把顶上的安装路径换成自己的就可以,换不换都行。默认的就是这样的,也可以不用改,要改的话可以(whereis xxx)这个命令搜索一下具体文件

!!!!!!!!!!!!以上这些都好了的话,
1、切到/root路径下面 cd /root
2、执行命令:bash /root/mysql.sh install (里面还有卸载、暂停等方法,自己研究) 如下图
在这里插入图片描述
3、重启系统:reboot now
4、输入查看进程命令:ps aux|grep mysql;如下图
在这里插入图片描述

或者运行命令:cd /usr/local/mysql-------mysql的安装路径; 输入:mysql -u root(账号) -p 登录mysql
如下图:
在这里插入图片描述

然后就可以看到成功了,有疑问欢迎留言,有问题欢迎大佬指出。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

情绪稳定的犟种

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值