centos7自动安装mysql

1.文章概述

注意!!!
该脚本目前存在一些问题功能基本实现!!!
之前的文章是出一篇普通安装教程再出一篇自动安装的教程,于是尝试编写自动安装的脚本最后的结果是以失败告终!!!
由于mysql的安全机制,使用mysql -uroot -p命令时初始密码无法通过变量的形式传递。最终只完成了一个半成品的东西,没能实现自动设置密码,安装成功后需要手动复制密码登录,然后执行source sqlfile.sql。
以下是脚本内容

2.shell脚本

#!/bin/bash
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
yum -y localinstall mysql57-community-release-el7-8.noarch.rpm
yum -y repolist enabled | grep "mysql.*-community.*"  
yum -y install mysql-community-server 
systemctl restart mysqld
#sed -i '/mysql.sock/a\skip-grant-tables' /etc/my.cnf
passwd=$(grep 'temporary password' /var/log/mysqld.log | awk '{print $11}')
read -p "请输入你想要设置的数据库密码以回车结束" newpwd
cat >./temp.sql <<EOF
set global validate_password_policy=0;
set global validate_password_length=1;
ALTER USER 'root'@'localhost' IDENTIFIED BY '$newpwd';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '$newpwd' WITH GRANT OPTION;
FLUSH  PRIVILEGES;
EOF
chmod 777 temp.sql
#mysql -uroot -p$passwd -e "source temp.sql"
echo "初始密码是:$passwd"
echo "请复制初始密码登录后执行语句:source temp.sql"
mysql -uroot -p

脚本只有一些主流程逻辑其他的并没有写比如检查是否已经安装、设为开机自启等等…,因为尝试了很多办法也没能找到能绕开安全机制的方法,最后只能换了这个方式勉强达到半自动效果

3.尝试过的方法

1、通过sed命令修改mysql配置使其直接跳过密码认证,这个就相当于使用mysql -uroot -p命令不需要输入密码直接进入mysql命令行。当时的思路是
修改配置 – 重启服务 – 免密登录 – 修改密码 – 再将配置中添加的跳过认证干掉。最后失败告终,进入mysql后执行sql语句出现了找不到对应表的问题

sed -i '/mysql.sock/a\skip-grant-tables' /etc/my.cnf

2、export MYSQL_PWD方法,这个方法的主要思路是将mysql密码设置为环境变量,登录时直接引用改环境变量,最后也以失败告终,这个虽然不能解决掉我这里遇到的问题,但是对于已经修改过初始免密的时候还是有效果的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值