shell脚本一键部署mysql

#/bin/bash
#检查mysql
function mysql_check(){
   mysql_rpm_list=`rpm -qa | grep mysql`
   if [ -n "$mysql_rpm_list" ]; then
         echo "mysql检查结果:系统已安装mysql,需先卸载,安装sql如下:"
         rpm -qa | grep mysql | tee
         read -p "是否卸载已安装的MySQL?(Y/N):" mysql_chose
         if [ "$mysql_chose" == "Y" ] || [ "$mysql_chose" == "y" ]; then
             echo "开始卸载mysql...."
             rpm -qa |grep mysql |xargs rpm -e --nodeps >/dev/null
             sleep 2
             echo "mysql卸载完成"
         else
              exit 0
         fi
    else
         echo "系统无安装mysql"
    fi
}
# 检查可能的MySQL残留文件
function mysqlFile_check(){
    mysqlFile=`find / -name mysql`
    if [ -n "$mysqlFile" ]; then
        echo "检测到服务器可能存在MySQL残留文件,文件列表如下:"
        find / -name mysql |xargs du --max-depth=0 -h   # 打印可能的MySQL残留文件及大小
        read -p "您要对这些文件怎么处理?(0:正常文件,不处理;1:我要手动删除;del:全部删除):" choose_delmysqlFile
        if [ "$choose_delmysqlFile" == 0 ] ;then
            return 0
        elif [ "$choose_delmysqlFile" == 1 ] ;then
            exit 0
        elif [ "$choose_delmysqlFile" == 'del' ] ;then
            echo "开始清理MySQL残留文件..."
            #清理冗余文件
            find / -name mysql |xargs rm -rf
            sleep 3
            rm -f /var/log/mysqld.log
            echo "MySQL残留文件清理成功!"
        else
            echo "输入错误,请选择0、1、del."
            exit 0
        fi
    else
        rm -f /var/log/mysqld.log
        echo "mysql残留文件检查结果:不存在MySQL残留文件"
    fi
}
#安装mysql
function mysql_install()
{
 #检查mysql用户组和用户是否存在,如果没有则创建
     mysql_user=`cat /etc/passwd | grep mysql`
     mysql_group=`cat /etc/group | grep mysql`
   if [ -n "$mysql_group" ] || [ -n "$mysql_user" ] ; then
         echo "mysql用户组和用户已存在,无需创建"
    else
        groupadd mysql && useradd -r -g mysql mysql
        echo "mysql用户组/用户已创建成功"
   fi
    #下载安装mysql安装包
    wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
    sleep 2
    tar xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
    #解压安装包移动到/usr/local/路径下命名mysql
    mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql
    #在/usr/local/mysql目录下创建data目录
    mkdir /usr/local/mysql/data
    echo "data目录创建成功"
    #更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限
    chown -R mysql:mysql /usr/local/mysql
    chmod -R 755 /usr/local/mysql
    echo " mysql安装成功"    
    yum install libaio
    ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 
    ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
}
#写入mysql配置文件
function mysql_cnf()
{
     tee /etc/my.cnf <<-EOF
[mysqld]
      datadir=/usr/local/mysql/data
      port = 3306
      sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
      symbolic-links=0
      max_connections=400
      innodb_file_per_table=1
      lower_case_table_names=1
      character_set_server=utf8
       skip-grant-tables #登陆是跳开密码
EOF
  echo "mysql数据库配置文件写入成功"
}
#数据库初始化
function mysql_initialized(){
   cd /usr/local/mysql/bin && ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
}
#启动数据库
function mysql_start()
{
   service mysql start
}
#登录数据库
function mysql_link(){

 mysql -uroot  
}
main(){
mysql_check
mysqlFile_check
mysql_install
mysql_cnf
mysql_initialized
mysql_start
mysql_link
}
main

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值