mysql-5.7.37-linux-glibc2.12-x86_64.tar一键安装脚本

#!/bin/bash

# -----------------------------------------------------------------------------
# Installation Script for the auto-deployment EMM(Linux edition)
# -----------------------------------------------------------------------------
 
# -----------------------------------------------------------------------------
# shell script to install MySQL (default version mysql-community-5.7.)
 
echo "-----------------------start install mysql----------------------"
# Remove pre-installed on OS MariaDB if exists 
echo "-----------------------start uninstall mariadb------------------"
for i in $(rpm -qa | grep mariadb | grep -v grep)
do
  echo "Deleting rpm --> "$i
  rpm -e --nodeps $i
done
echo "-----------------------end uninstall mariadb------------------"

# check installed mysql or not
echo "-----------------------start delete mysql------------------"
for i in `rpm -qa | grep "mysql"`
do
rpm -e --allmatches $i --nodeps
done
echo "-----------------------end delete mysql------------------"

echo "-----------------------start delete my.cnf------------------"
rm /etc/my.cnf
echo "-----------------------end delete my.cnf------------------"

echo "-----------------------start adding user mysql------------------"
if [ `grep "mysql" /etc/passwd | wc -l` -eq 0 ];then
echo "adding user mysql"
groupadd mysql
useradd -r -g mysql mysql
else
echo "mysql user is exist"
fi
echo "-----------------------end adding user mysql--------------------"

# Install mysqlserver
echo "-----------------------start tar mysql--------------------"
tar -zxvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz -C  /opt/mysql
echo "-----------------------end tar mysql--------------------"
echo "-----------------------start mv and chown mysql--------------------"
mv mysql-5.7.37-linux-glibc2.12-x86_64/ /usr/local/mysql
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql
echo "-----------------------end mv and chown mysql--------------------"

echo "-----------------------start go in /usr/local/mysql --------------------"
# 进入mysql这个目录
cd /usr/local/mysql
 
echo "-----------------------end go in /usr/local/mysql--------------------"
echo "-----------------------start chown data--------------------"
# 建立存放mysql数据的目录
mkdir /data/mysql -p
chown mysql:mysql /data/mysql
chmod 750 /data/mysql
echo "-----------------------end chown data--------------------"

# 进入/usr/local/mysql/bin目录
cd /usr/local/mysql/bin

echo "-----------------------start initialize mysql--------------------"
# 初始化mysql
./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql &>passwd.txt
# 让MySQL支持ssl方式登录,加密
./mysql_ssl_rsa_setup --datadir=/data/mysql/

echo "-----------------------end initialize mysql--------------------"

echo "-----------------------start tem_passwd mysql--------------------"
# 获取临时密码
tem_passwd=$(cat passwd.txt | grep "temporary"|awk '{print $NF}')
echo "-----------------------end tem_passwd mysql--------------------"

echo "-----------------------start modify PATH--------------------"
# 修改PATH变量,加入mysql bin目录的路径
# 临时修改PATH变量的值
PATH=/usr/local/mysql/bin/:$PATH

echo 'PATH=/usr/local/mysql/bin:$PATH' >>/root/.bashrc
echo "-----------------------end modify PATH--------------------" 

echo "-----------------------start copy mysql.server--------------------"  
# 复制support-files里的mysql.server文件到/etc/init.d/目录下叫作mysqld
cp ../support-files/mysql.server /etc/init.d/mysqld
 
# /etc/init.d/mysqld脚本文件的datadir目录的值
sed -i '70c datadir=/data/mysql' /etc/init.d/mysqld
 
echo "-----------------------end copy mysql.server--------------------"  

echo "-----------------------start generate my.cnf--------------------"  

# 生成/etc/my.cnf配置文件
cat >/etc/my.cnf  <<EOF
[mysql_safe]
[client]
socket=/data/mysql/mysql.sock
[mysqld]
socket=/data/mysql/mysql.sock
port=3306
open_files_limit = 8192
innodb_buffer_pool_size = 512M
character-set-server=utf8
[mysql]
auto-rehash
prompt=\\u@\\d \\R:\\m  mysql>
EOF

chmod -R 775 /etc/my.cnf 
echo "-----------------------end generate my.cnf--------------------" 

echo "-----------------------start service mysqld --------------------"  
# 启动mysqld进程
service mysqld start

echo "-----------------------end service mysqld--------------------"  
 
# 将mysqld添加到linux系统里服务管理名单里
/sbin/chkconfig --add mysqld
# 设置mysqld服务开机启动
/sbin/chkconfig mysqld on

echo "-----------------------start change pwd--------------------" 
 
# --connect-expired-passwd 初次修改密码需要使用
# -e 后面接表示在mysql里需要执行的命令 excute 执行
# set password='admin123'; 修改root用户的密码为admin123
mysql -uroot -p$tem_passwd --connect-expired-password -e "set password='admin123';"

# 验证上一步修改密码是否成功
mysql -uroot -p'admin123' -e "show databases;"
echo "-----------------------end change pwd--------------------" 

mysql -uroot -p'admin123' -e "use mysql;"
mysql -uroot -p'admin123' -e "update user set user.Host='%' where user.User='root';"
mysql -uroot -p'admin123' -e "flush privileges;"

# 开放3306端口命令
firewall-cmd --zone=public --add-port=3306/tcp --permanent

# 配置立即生效
firewall-cmd --reload

echo "-----------------------end install mysql----------------------"
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

疯癫的老码农

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

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

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

打赏作者

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

抵扣说明:

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

余额充值