使用脚本自动在Linux系统上安装mysql

mysql安装

  1. 使用安装包进行离线安装

    • 下载mysql安装包

    • 使用脚本自动化安装

#!/bin/bash
 echo -e "\033[4;40;31m欢迎使用mysql离线安装自动化脚本 v1.0\033[0m"
 ​
 ​
 read -p "请输入mysql8的zx压缩包文件所在路径(eg:/opt/mysql8.xxx.xz):" FILE_PATH
 read -p "请输入想要安装的目录(eg:/usr/local/mysql):" DEST_PATH
 ​
 rpm -e --nodeps $(rpm -qa | grep mariadb)
 ​
 echo -e "\033[40;32m   (1/13)正在解压,请耐心等待解压过程约1-3分钟... \033[0m"
 tar Jxf $FILE_PATH -C .
 echo -e "\033[40;32m   解压完成 \033[0m"
 ​
 echo -e "\033[40;32m   (2/13)移动加压后的文件到$DEST_PATH \033[0m"
 mv mysql-8*x86_64 $DEST_PATH
 ​
 echo -e "\033[40;32m   (3/13)添加环境变量$DEST_PATH \033[0m"
 echo "export MYSQL_HOME=$DEST_PATH" >>/etc/profile
 echo 'export PATH=.:$MYSQL_HOME/bin:$PATH' >>/etc/profile
 source /etc/profile
 ​
 echo -e "\033[40;32m   (4/13)创建data目录 \033[0m"
 mkdir $DEST_PATH/data
 ​
 echo -e "\033[40;32m   (5/13)创建my.cnf配置文件 \033[0m"
 rm -rf /etc/my.cnf
 echo "
 [client]
 port=3306
 socket=/tmp/mysql.sock
 [mysqld]
 port=3306
 user=mysql
 socket=/tmp/mysql.sock
 basedir=$DEST_PATH
 datadir=$DEST_PATH/data
 log-error=$DEST_PATH/error.log
 pid-file = $DEST_PATH/mysql.pid
 transaction_isolation = READ-COMMITTED
 character-set-server = utf8
 collation-server = utf8_general_ci
 lower_case_table_names = 1
 " > /etc/my.cnf
 echo 'sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO"' >> /etc/my.cnf
 ​
 echo -e "\033[40;32m   (6/13)创建mysql组 \033[0m"
 groupadd mysql
 ​
 echo -e "\033[40;32m   (7/13)创建mysql用户并加入mysql组 \033[0m"
 useradd -g mysql mysql
 ​
 echo -e "\033[40;32m   (8/13)修改安装目录权限和所有者 \033[0m"
 chown -R mysql:mysql $DEST_PATH
 chmod -R 755 $DEST_PATH
 ​
 echo -e "\033[40;32m   (9/13)初始化mysql \033[0m"
 $DEST_PATH/bin/mysqld --initialize --user=mysql
 ​
 echo -e "\033[40;32m   (10/13)尝试启动mysql \033[0m"
 $DEST_PATH/support-files/mysql.server start
 ​
 echo -e "\033[40;32m   (11/13)将mysqld添加为服务并设置开机自启动 \033[0m"
 cp $DEST_PATH/support-files/mysql.server /etc/init.d/mysqld
 chmod 755 /etc/init.d/mysqld
 chkconfig --add mysqld
 chkconfig --level 345 mysqld on
 ​
 echo -e "\033[40;32m   (12/13)重启mysql \033[0m"
 service mysqld restart
 ​
 echo -e "\033[40;32m   (13/13)读取临时密码 \033[0m"
 TEMP_PW=$(cat $DEST_PATH/error.log | grep 'password' | awk -F' ' '{print $NF}')
 ​
 echo -e "
 ​
 \033[40;32m  mysql的初始临时密码为:$TEMP_PW \033[0m
 ​
 \033[40;32m  使用初始密码登录mysql后,您可以使用如下SQL修改初始密码: \033[0m
 \033[40;33m  ALTER user 'root'@'localhost' IDENTIFIED BY '123456'; \033[0m
 ​
 \033[40;32m  使用如下SQL添加可远程访问的root用户: \033[0m
 \033[40;33m  CREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password  BY '123456'; \033[0m
 \033[40;33m  GRANT ALL ON *.* TO 'root'@'%'; \033[0m
 \033[40;33m  FLUSH PRIVILEGES; \033[0m
 ​
 \033[40;32m  3秒后将使用初始密码登录mysql,感谢您的使用 \033[0m
 "
 ​
 sleep 3
 ​
 mysql -uroot -p$TEMP_PW

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值