Shell脚本之一键安装mysql

一、mysql安装脚本简介

  一键安装mysql数据库脚本用于centos7环境下安装mysql5.7数据库,安装方式为使用普通用户安装mysql解压包。脚本内容包括,首先检查是否安装mariadb,根据检查结果调用卸载mariadb函数;然后执行安装包解压和数据库初始化;然后mysql添加到用户环境变量;最后启动数据库。适用环境:

  • 操作系统:centos7
  • mysql数据库:mysql5.7

二、安装步骤

1、下载安装脚本

从下载链接地址下载安装脚本压缩包,压缩包中包含安装脚本、mysql软件包、配置文件模板等一键安装mysql数据库脚本.zip下载链接

2、将压缩包上传到centos服务器

[test@localhost ~]$ mkdir mysql$ mkdir mysql
[test@localhost ~]$ rz -y
#将一键安装mysql数据库脚本.zip上传到服务器

3、解压压缩包

[test@localhost mysql]$ unzip 一键安装mysql数据库脚本.zip
Archive: 一键安装mysql数据库脚本.zip
inflating: clean.sh
inflating: my.cnf.bak
inflating: mysql_install.sh
inflating: mysql-5.7.32-el7-x86_64.tar.gz
inflating: startmysql.sh
inflating: stopmysql.sh

4、给脚本添加执行权限

[test@localhost mysql]$ chmod u+x *.sh

5、执行mysql安装脚本

[test@localhost mysql]$ sh mysql_install.sh

6、修改root初始密码

在这里插入图片描述

7、登录mysql实例检查

[test@localhost ~]$ mysql -uroot -p -h 127.0.0.1
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.32-log MySQL Community Server (GPL)

Copyright © 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.
mysql>

三、其他文件说明

my.cnf.bak文件为mysql数据库的默认配置文件
startmysql.sh为数据库启动脚本
stopmysql.sh为数据库停止脚本,停止时要求输入root账户密码
clean.sh为安装失败需要重新安装前的数据清理脚本,建议在成功安装后删除或者去除执行权限。

四、脚本内容

#!/bin/bash
#script name: mysql_install.sh
#author: [email protected]
###########description##########
#此脚本用于一键安装mysql5.7数据库,此脚本将mysql数据库安装于执行脚本的目录下
#数据库安装前需要将mysql-5.7*.tar.gz文件、my.cnf.bak、startmysql.sh、stopmysql.sh拷贝至安装脚本路径下
#
###########description##########
#version: v1

#parameter definition
curdir=$(cd `dirname $0`; pwd)
curuser=$USER
mysqltarfile=`ls -l |grep tar.gz |awk '{print $9}'`
cfg="my.cnf"
startfile="startmysql.sh"
stopfile="stopmysql.sh"

function use_check(){
    
    
  if [ $curuser != 'root' ];then
    echo "此用户非root,安装数据库前需要卸载系统自带的mariadb和mysql,请使用root卸载后再执行脚本!"
    sudo rpm -qa |grep mariadb |xargs rpm -e --nodeps
  else
    rpm -qa |grep mariadb |xargs rpm -e --nodeps
  fi
}

function mariadb_check(){
    
    
  mariadb_rpm_list=`rpm -qa |grep mariadb`
  if [ -n "$mariadb_rpm_list" ];then
    echo "mariadb检查结果:系统已安装mariadb,需先卸载"
    use_check
    return 1
  else
    echo "mariadb检查结果:系统未安装mariadb"
    return 0
  fi
}

function mysql_install(){
    
    
  cd $curdir
  cp my.cnf.bak my.cnf
  echo "解压安装包$mysqltarfile ..."
  tar xf $mysqltarfile
  mkdir data
  mkdir logs
  #获取解压后的目录名称
  basedir=`ls -l |grep tar.gz |awk '{print $9}' |cut -d . -f-3`
  #将安装路径进行处理,方便sed替换修改
  curdirm=`echo $curdir |sed 's#\/#\\\/#g'`
  ln -s $basedir mysql5.7
  echo -n 'export PATH=$PATH:' >> ~/.bashrc
  echo "$curdir/mysql5.7/bin/" >> ~/.bashrc
  source ~/.bashrc 
  sed -i "s/user = wuhs/user= $curuser/g" $cfg
  sed -i "s/\/home\/wuhs\/mysql/$curdirm/g" $cfg
  echo "现在初始化数据库..."
  mysqld --initialize --user=$curuser --basedir=$curdir/mysql5.7/bin/ --datadir=$curdir/data/ --lc-messages-dir=$curdir/mysql5.7/share/english &> init.log
  initpasswd=`cat init.log |grep root@localhost |cut -d : -f4-`
  echo "开始启动数据库..."
  sh startmysql.sh &> /dev/null 
  ln -s $curdir/mysql.sock /tmp/mysql.sock
  echo "初始密码是:$initpasswd"
  read -p "请输入需要确定的root@localhost密码: " opt
  mysqladmin -u root -p password $opt
  rm -rf init.log
  echo "恭喜你,数据库安装完成,现在可以开始正式使用啦!"
}

function main(){
    
    
  mariadb_check
  mysql_install
}

main

Guess you like

Origin blog.csdn.net/carefree2005/article/details/120666977