MySQL 多实例二进制部署 SHELL 脚本

本贴最后更新于 1544 天前,其中的信息可能已经时移世异
#!/bin/bash # #******************************************************************** #Author:zhangzhuo #QQ: 1191400158 #Date: 2021-01-30 #FileName:mysql5.7-8.0_install_multi.sh #URL: https://www.zhangzhuo.ltd #Description:The test script #Copyright (C): 2021 All rights reserved #******************************************************************** . /etc/init.d/functions DIR=`pwd` #URL可修改可写包下载地址http或者https,或者包名称,写包名称在哪执行脚本放在那 URL=https://repo.huaweicloud.com/mysql/Downloads/MySQL-5.7/mysql-5.7.31-linux-glibc2.12-x86_64.tar.gz NAME=`echo $URL | grep -Eo '[^/]+$'` DIRNAME=`echo $NAME | sed -rn 's/(.*).tar.*/\1/p'` #主数据库安装位置,可修改 DATA_DIR=/data/mysql #多实例创建几个实例,可修改 NUM=5 NUM=$[3305+${NUM}] FULL_NAME=${DIR}/${NAME} #数据库root密码,可修改 PASSWORD=123456 install_mysql_wget(){ rpm -q wget &>/dev/null || yum install -y wget yum install -y -q libaio perl-Data-Dumper autoconf if [ -f ${FULL_NAME} ];then action "安装文件已经存在不需要下载" else action "安装文件不存在开始下载" false wget $URL || { action "下载失败,异常退出" false;exit 10; } fi } install_mysql_user(){ if id mysql &>/dev/null;then action "MYSQL用户已经存在,无需从新创建!" else useradd -r -s /sbin/nologin mysql action "mysql用户创建成功" fi } install_mysql_datadir(){ for i in `seq 3306 $NUM`;do if [ -d ${DATA_DIR}/$i ];then action "${DATA_DIR}/$i目录已经存在,无需从新创建!" chown mysql: $DATA_DIR/$i else mkdir -p ${DATA_DIR}/$i action "${DATA_DIR}/$i目录创建完毕!" chown mysql: $DATA_DIR/$i fi done } install_mysql_my(){ cat <<EOF >/etc/my.cnf [mysqld_multi] mysqld=/usr/local/mysql/bin/mysqld_safe mysqladmin=/usr/local/mysql/bin/mysqladmin EOF for i in `seq 3306 $NUM`;do cat <<EOF >>/etc/my.cnf [mysqld$i] datadir=${DATA_DIR}/$i port=$i socket=${DATA_DIR}/$i/mysql${i}.sock pid-file=${DATA_DIR}/$i/mysql${i}.pid log-error=${DATA_DIR}/$i/mysql${i}.log EOF done action "配置文件配置完成" } install_mysql_enable(){ cat <<EOF >>/etc/rc.d/rc.local . /etc/profile.d/mysql.sh mysqld_multi start 3306-$NUM EOF chmod +x /etc/rc.d/rc.local action "mysql开机启动设置完毕!" } install_mysql_multi(){ if [ -e /usr/local/mysql ];then action "mysql已经安装,无法安装" false exit else tar -xf $FULL_NAME -C /usr/local cd /usr/local/ ln -s $DIRNAME mysql chown -R mysql: /usr/local/mysql/ echo "PATH=/usr/local/mysql/bin":'$PATH' >/etc/profile.d/mysql.sh source /etc/profile.d/mysql.sh for i in `seq 3306 $NUM`;do mysqld --initialize-insecure --user=mysql --datadir=${DATA_DIR}/$i &>/dev/null action "$i数据库原始数据文件生成完毕" done install_mysql_my mysqld_multi start 3306-$NUM action "正在启动...等待20秒";sleep 20 for i in `seq 3306 $NUM`;do mysqladmin -S ${DATA_DIR}/$i/mysql${i}.sock ping >/dev/null if [ $? = 0 ];then action "$i数据库启动成功" mysqladmin -S ${DATA_DIR}/$i/mysql${i}.sock password $PASSWORD &>/dev/null if [ $? = 0 ];then action "$i数据库root密码修改成功" else action "$i数据库root密码修改失败" false fi else action "$i数据库启动失败" false fi done fi } install_mysql_wget install_mysql_user install_mysql_datadir install_mysql_multi install_mysql_enable

使用方法:

  • 适用于 mysql5.7 及以上版本,以下版本切勿使用
  • 适用于 centos7,8 系统 centos6 没有测试过
  • 任何方式安装过 mysql 主机请勿使用
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    124 引用 • 74 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    556 引用 • 675 回帖
  • Kubernetes

    Kubernetes 是 Google 开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。

    116 引用 • 54 回帖 • 1 关注
  • 印象笔记
    3 引用 • 16 回帖 • 1 关注
  • ReactiveX

    ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。

    1 引用 • 2 回帖 • 183 关注
  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    85 引用 • 165 回帖 • 1 关注
  • 工具

    子曰:“工欲善其事,必先利其器。”

    298 引用 • 763 回帖
  • 钉钉

    钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。

    15 引用 • 67 回帖 • 290 关注
  • Vue.js

    Vue.js(读音 /vju ː/,类似于 view)是一个构建数据驱动的 Web 界面库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。

    267 引用 • 666 回帖 • 1 关注
  • 机器学习

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    83 引用 • 37 回帖 • 1 关注
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖 • 6 关注
  • DNSPod

    DNSPod 建立于 2006 年 3 月份,是一款免费智能 DNS 产品。 DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。

    6 引用 • 26 回帖 • 532 关注
  • 互联网

    互联网(Internet),又称网际网络,或音译因特网、英特网。互联网始于 1969 年美国的阿帕网,是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协议相连,形成逻辑上的单一巨大国际网络。

    99 引用 • 367 回帖
  • CongSec

    本标签主要用于分享网络空间安全专业的学习笔记

    1 引用 • 1 回帖 • 29 关注
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    28 引用 • 226 回帖 • 132 关注
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    20 引用 • 23 回帖 • 740 关注
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    143 引用 • 442 回帖 • 1 关注
  • Ant-Design

    Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。

    17 引用 • 23 回帖 • 4 关注
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 131 关注
  • RESTful

    一种软件架构设计风格而不是标准,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    30 引用 • 114 回帖 • 6 关注
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    15 引用 • 136 回帖
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖 • 4 关注
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 678 关注
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    15 引用 • 7 回帖
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    494 引用 • 928 回帖
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 492 关注
  • HTML

    HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。

    108 引用 • 295 回帖 • 1 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 440 关注