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

本贴最后更新于 1482 天前,其中的信息可能已经时移世异
#!/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 回帖

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    2 引用 • 14 回帖
  • 导航

    各种网址链接、内容导航。

    43 引用 • 177 回帖 • 1 关注
  • 智能合约

    智能合约(Smart contract)是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约概念于 1994 年由 Nick Szabo 首次提出。

    1 引用 • 11 回帖
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    70 引用 • 193 回帖 • 413 关注
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    943 引用 • 1460 回帖
  • Docker

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

    493 引用 • 928 回帖 • 2 关注
  • CSS

    CSS(Cascading Style Sheet)“层叠样式表”是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言。

    197 引用 • 541 回帖 • 2 关注
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 456 关注
  • Latke

    Latke 是一款以 JSON 为主的 Java Web 框架。

    71 引用 • 535 回帖 • 802 关注
  • Swagger

    Swagger 是一款非常流行的 API 开发工具,它遵循 OpenAPI Specification(这是一种通用的、和编程语言无关的 API 描述规范)。Swagger 贯穿整个 API 生命周期,如 API 的设计、编写文档、测试和部署。

    26 引用 • 35 回帖
  • 资讯

    资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。

    55 引用 • 85 回帖
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3455 回帖 • 174 关注
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    86 引用 • 122 回帖 • 624 关注
  • PWA

    PWA(Progressive Web App)是 Google 在 2015 年提出、2016 年 6 月开始推广的项目。它结合了一系列现代 Web 技术,在网页应用中实现和原生应用相近的用户体验。

    14 引用 • 69 回帖 • 170 关注
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 730 关注
  • GitLab

    GitLab 是利用 Ruby 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面操作公开或私有项目。

    46 引用 • 72 回帖
  • 设计模式

    设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。

    200 引用 • 120 回帖 • 4 关注
  • Follow
    4 引用 • 12 回帖
  • 宕机

    宕机,多指一些网站、游戏、网络应用等服务器一种区别于正常运行的状态,也叫“Down 机”、“当机”或“死机”。宕机状态不仅仅是指服务器“挂掉了”、“死机了”状态,也包括服务器假死、停用、关闭等一些原因而导致出现的不能够正常运行的状态。

    13 引用 • 82 回帖 • 69 关注
  • 程序员

    程序员是从事程序开发、程序维护的专业人员。

    581 引用 • 3535 回帖
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 678 关注
  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖 • 2 关注
  • Office

    Office 现已更名为 Microsoft 365. Microsoft 365 将高级 Office 应用(如 Word、Excel 和 PowerPoint)与 1 TB 的 OneDrive 云存储空间、高级安全性等结合在一起,可帮助你在任何设备上完成操作。

    5 引用 • 34 回帖
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 701 关注
  • Lute

    Lute 是一款结构化的 Markdown 引擎,支持 Go 和 JavaScript。

    26 引用 • 196 回帖 • 24 关注
  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    4 引用 • 16 回帖 • 6 关注