2021-06-14

Centos7 MySql自动安装脚本文件

#!/bin/bash
# author scl
# 准备工作
# 删除原来的mysql
rm -rf `find / -name mysql 2>/dev/null|grep mysql`
# 安装依赖
yum  install libaio cmake ncurses-devel gcc  gcc-c++  vim  lsof bzip2 openssl-devel -y
#关闭防火墙firewalld
service firewalld stop
systemctl  disable firewalld

#关闭selinux
#临时关闭selinux
#永久关闭selinux
setenforce 0 # 临时关闭防火墙
sed  -i  's/enforcing/disabled/' /etc/selinux/config 
# 压缩包存放目录
softPath='/tmp/software'
# mysql安装目录
mysqlPath='/usr/local/mysql'
# mysql bin目录
mysqlBinPath="${mysqlPath}/bin"
# mysql数据库目录
mysqlData="${mysqlPath}/data"
# 判断softPath 是否存在
if [[ !(-d softPath) ]]
	then
		#不存在,创建目录
		mkdir -p ${softPath}
fi
# 如果没有wget,执行 yum install wget -y
# wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz

defaultMysql="mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz"
if [[ -f $defaultMysql ]]
	then
		echo "mysql压缩包已经存在"
	else
		wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz
fi
mv ${defaultMysql} ${softPath}
cd ${softPath}
rm -rf ${mysqlPath}
# 解压、移动、重名名
tar -zxvf ${defaultMysql}
mv ${defaultMysql%%.tar.gz} ${mysqlPath}
cd ${mysqlPath}
# 创建数据库目录,如果不存在
if [[ !(-d ${mysqlData}) ]];then mkdir -p ${mysqlData};fi

# 添加用户和用户组
groupadd mysql
#添加用户mysql 到用户组mysql(使用-r参数表示mysql用户是一个系统用户,不能登录)
useradd -r -g mysql mysql
#添加完用下面命令测试,能看到mysql用户的信息
echo "测试:" `id mysql`

# 目录权限设置
# 将mysql及其下所有的目录所有者和组均设为mysql
chown -R mysql:mysql ${mysqlPath}

echo "------------mysql config -----------------"
# 配置my.cnf文件,根据需要自定义修改
mv  /etc/my.cnf /etc/my.cnf.bak
cat  >/etc/my.cnf  <<EOF
[mysqld_safe]

[client]
socket=/data/mysql/mysql.sock

[mysqld]
socket=/data/mysql/mysql.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
open_files_limit=8192
innodb_buffer_pool_size=512M
character-set-server=utf8

[mysql]
#自动补全
auto-rehash
#登录进mysql提示符格式
prompt=\\u@\\d \\R:\\m  mysql>
EOF

# UNIX socket file don't exists. 目录不存在需要创建
# 创建sock目录 赋予权限
mkdir -p /data/mysql
chmod 760 /data/mysql


echo "---------------------init mysql-------------------"
# 初始化mysql /usr/local/mysql 密码保存在/usr/local/mysql/passwd.txt文件中
${mysqlPath}/bin/mysqld --initialize --user=mysql --basedir=${mysqlPath} --datadir=${mysqlData} &>passwd.txt

#重新修改权限
chown -R root:root ./
chown -R mysql:mysql data/
#修改环境变量,添加我们编译安装的MySQL的可执行命令的路径
echo  "PATH=$PATH:"$mysqlBinPath >>/root/.bashrc
source /root/.bashrc
# 处理 Unit mysqld.service could not be found.
#复制mysql提供的启动mysqld服务的脚本到/etc/init.d目录下-->复制mysqld的启动脚本
cp ${mysqlPath}/support-files/mysql.server  /etc/init.d/mysqld



修改密码的脚本文件

#!/bin/bash
#启动mysqld服务
systemctl daemon-reload
systemctl start mysql
#设置开机启动MySQL
chkconfig --add mysqld

# 获取临时密码my
tem_passwd=$(cat /usr/local/mysql/passwd.txt |grep "temporary"|awk '{print $NF}')
echo "$tem_passwd"
#初次修改密码需要使用--connect-expired-password 选项
mysql -uroot -p$tem_passwd --connect-expired-password   -e  "set password='Chenglu123#';"
#验证密码是否设置成功
mysql -uroot -pChenglu123#  -e  'show databases;' && echo "database is installed success"
echo "mysql install successful"
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

詩不诉卿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值