ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

【MySQL】MySQL自动化安装脚本

2022-06-19 14:33:34  阅读:171  来源: 互联网

标签:脚本 sbin etc mysql 自动化 echo -- MYSQL MySQL


RHEL7自动安装mysql5.7
 
#!/bin/bash
#
#首先将压缩文件和配置文件(mysql57.cnf)放到/software目录
#软件目录:/usr/local/mysql
#数据目录:/data/mysql_data
#mysql-files目录:/data/mysql-files
#设置好root用户的密码
#deploy_mysql57.sh
#
#相关目录
MYSQL_FILE='/software'
MYSQL_HOME='/usr/local'
MYSQL_DATA='/data/mysql_data'
MYSQL_FILES='/data/mysql-files'
MYSQL_TAR='/software/mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz'
MYSQL_UNZIP_FILE='mysql-5.7.35-linux-glibc2.12-x86_64'
TIME=`date +%Y%m%d%H%M%S`
 
#检查安装用户是否是root
if [ $(id -u) != "0" ]; then
    echo "Error: You must be root to run this script, please use root to install"
    exit 1
fi
 
#安装依赖包
rpm=`rpm -qa libaio|awk -F "-" '{print $1}'`
if [ -z "$rpm" ];then
    yum -y install libaio
else
    echo -e "\033[40;31m libaio [found]\033[40;37m"
fi
 
#防火墙开通3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload

#创建mysql用户
find / -name "mysql" -exec rm -rf {} \; >/dev/null 2>&1
id mysql
if [  "0" == "$?" ];then
    echo "mysql用户存在,删除mysql用户和组"
    pid=`pidof mysqld`
    kill -9  $pid >/dev/null 2>&1
    /usr/sbin/userdel -r  mysql > /dev/null 2>&1
    echo "1创建mysql用户和组" && sleep 2
    /usr/sbin/groupadd mysql
    /usr/sbin/useradd -s /sbin/nologin -g mysql mysql
else
    echo "2创建mysql用户和组" && sleep 2
    /usr/sbin/groupadd mysql
    /usr/sbin/useradd -s /sbin/nologin -g mysql mysql
fi
 
#配置文件限制
cat >>/etc/security/limits.conf<<EOF
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535
EOF
echo "fs.file-max=65535" >> /etc/sysctl.conf

#安装程序
#安装前准备
echo "unzip starting......"
tar -zxf $MYSQL_TAR -C $MYSQL_HOME
#创建软链接
cd $MYSQL_HOME
ln -s $MYSQL_UNZIP_FILE mysql
#创建目录
echo "创建mysql相关文件目录" && sleep 2
mkdir -p $MYSQL_DATA $MYSQL_FILES
chown -R mysql:mysql $MYSQL_DATA $MYSQL_FILES
chmod -R 750 $MYSQL_DATA $MYSQL_FILES
#配置用户环境变量
echo "export PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile
source /etc/profile

#配置文件(先备份后创建)
if [ -s /etc/my.cnf ]; then
    mv /etc/my.cnf /etc/my.cnf.$TIME.bak
fi
cat $MYSQL_FILE/mysql57.cnf > /etc/my.cnf
#初始化数据库
echo "initializing......"
mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql
mysql_ssl_rsa_setup
 
#mysql服务设置,启动mysql
cd $MYSQL_HOME/mysql
#将启动脚本加入到系统服务,并设置为开机启动启动
cp -rf $MYSQL_HOME/mysql/support-files/mysql.server /etc/init.d/mysql.server
 
/sbin/chkconfig --add mysql.server
/sbin/chkconfig mysql.server on
/sbin/chkconfig --list
echo "mysql starting......"
service mysql.server start
#查看安装是否有报错
echo "=============================="
grep 'error' $MYSQL_DATA/error.log
#查看是否启动mysql
echo "=============================="
ps -ef|grep mysql
#查看root随机密码
echo "==============================password"
cd $MYSQL_DATA
a1=`grep 'A temporary password' error.log | awk -F"root@localhost: " '{ print $2}' `
#登录数据库
mysql -uroot -p${a1} --connect-expired-password <<EOF
set password = 'abcexxxxx';
create user 'root'@'%' identified by 'abcexxxxx';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
exit
EOF
#重启mysql
sleep 1
systemctl restart mysql.server
echo "==============================install success"
#END
 
#对应的参数配置都写在配置文件中mysql57.cnf

  

标签:脚本,sbin,etc,mysql,自动化,echo,--,MYSQL,MySQL
来源: https://www.cnblogs.com/abclife/p/16390458.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有