【MySQL】MySQL自动化安装脚本
2022-06-19 14:22 abce 阅读(347) 评论(0) 编辑 收藏 举报1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 | 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 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2017-06-19 rhel 7 设置默认运行级别为图形
2015-06-19 表空间基于时间点的恢复