【MySQL】两个脚本搞定MySQL安装和主从的环境搭建

简介: 【MySQL】两个脚本搞定MySQL安装和主从的环境搭建

简介

关于 mysql 的安装和主从的搭建,在开发和运维过程中经常遇到,可以用两个脚本快速搭建 mysql 主从。

推荐使用 脚本 1 和脚本 2

项目地址: https://gitee.com/hh688/mysql_install_script

脚本 1:mysql 安装

介绍

新装 MySQL 或初始化新实例。

功能

  • 安装 mysql8.*
  • 安装 mysql5.7
  • 初始化新实例
  • systems 管理
  • 标准化配置文件 可根据需求自行修改
  • 便捷登录
  • 指定是否开启半同步
  • 指定是否开启 gtid
  • 设置内存大小

限制

  • 仅在 centos 7 上进行了测试
  • 需要自己下载安装包 脚本内有链接

使用说明

  • 需要自己下载安装包 脚本内有链接
  • 内网环境下需修改 ping 的地址
  • 内网环境需具有 yum 仓库
  • 仅支持二进制包安装

使用方法

yum install -y dos2unix
# 下载脚本
curl -o mysql_install.sh https://gitee.com/hh688/mysql_install_script/raw/master/mysql_install.sh
# 转化格式
dos2unix mysql_install.sh
# 添加权限
chmod 700 mysql_install.sh
# 修改参数定义
vim  mysql_install.sh
# 运行脚本
sh mysql_install.sh

脚本 2:搭建主从 --基于 mydumper

介绍

使用第一个脚本安装完 MySQL 后,可以使用此脚本搭建主从复制,可以基于 gtid 或 postion 两种方式搭建,数据导入比 mysqldump 更快。

功能

  • 安装环境检查是否符合要求
  • 基于 gtid 复制
  • 基于 postion 复制
  • 支持延迟复制
  • 指定复制线程数
  • mydumper 更快的数据导入
  • 流式数据传输
  • 长查询保护

限制

  • 仅在 centos 7 上进行了测试
  • 需要创建搭建用户 脚本内有注释
  • 需要搭建好从实例
  • 安装 mydumper
  • 需要确认 mydumper/myloader 指定的目录磁盘资源大于 mysql 实例大小
# 下载安装包
curl -o mydumper-0.16.1-3.el7.x86_64.rpm https://github.com/mydumper/mydumper/releases/download/v0.16.1-3/mydumper-0.16.1-3.el7.x86_64.rpm
# 安装
yum install mydumper-0.16.1-3.el7.x86_64.rpm -y

使用方法

# 下载脚本
curl -o  mysql_replica_mydumper.sh https://gitee.com/hh688/mysql_install_script/raw/master/mysql_replica_mydumper.sh
# 转换格式
dos2unix mysql_replica_mydumper.sh
# 授权
chmod 700 mysql_replica_mydumper.sh
# 修改参数
vim mysql_replica_mydumper.sh
# 主库创建用户
create user dba_qianyi_m@'%' identified by '123456'; grant all on *.* to dba_qianyi_m@'%' with grant option; flush privileges;
# 从库创建用户
create user dba_qianyi_s@'%' identified by '123456'; grant all on *.* to dba_qianyi_s@'%' with grant option; flush privileges;
# 后台运行
nohuo sh mysql_replica_mydumper.sh &
# 查看日志
tail -f $log_redirection  # 脚本内定义的日志路径
  • 在进行数据量较大的数据库迁移时,尽可能后台运行,以减少不必要的麻烦。
  • 请在搭建完成主从后删除迁移用户。

脚本 3:搭建主从 --基于 mysqldump

介绍

使用第一个脚本安装完 MySQL 后,可以使用此脚本搭建主从复制,可以基于 gtid 或 postion 两种方式搭建,相较于 myduper 速度会慢一些。

功能

  • 安装环境检查是否符合要求
  • 基于 gtid 复制
  • 基于 postion 复制
  • 支持延迟复制
  • 指定复制线程数
  • mydumper 更快的数据导入
  • 长查询保护

限制

  • 仅在 centos 7 上进行了测试
  • 需要创建搭建用户 脚本内有注释
  • 需要搭建好从实例
  • 当运行失败时请删除主库的主从用户

使用方法

# 获取脚本
curl -o mysql_replica.sh https://gitee.com/hh688/mysql_install_script/raw/master/mysql_replica.sh
# 转换格式
dos2unix mysql_replica.sh
# 授权
chmod 700 mysql_replica.sh
# 修改参数
vim mysql_replica.sh
# 主库创建用户
create user dba_qianyi_m@'%' identified by '123456'; grant all on *.* to dba_qianyi_m@'%' with grant option; flush privileges;
# 从库创建用户
create user dba_qianyi_s@'%' identified by '123456'; grant all on *.* to dba_qianyi_s@'%' with grant option; flush privileges;
# 后台运行
nohuo sh mysql_replica.sh &
# 查看日志
tail -f $log_redirection  # 脚本内定义的日志路径

使用说明

  • 对于主从没开启 gtid 的情况,想要使用 gtid 复制,可以根据官网修改为 gtid模式 。
  • 对于已经开启 gtid 的情况,需要在从库设置 gtid_purged 参数为主库的 Executed_Gtid_Set 值,目的是告诉从库开始从主库复制的 gtid 位置点。
# 主库的 Executed_Gtid_Set 可以通过以下命令获取
mysql> show master status\G;
*************************** 1. row ***************************
             File: mysql-bin.000001
         Position: 154
     Binlog_Do_DB: 
 Binlog_Ignore_DB: 
Executed_Gtid_Set: bdd069c3-0e70-11ef-947e-000c29f064be:1-242
1 row in set (0.00 sec)
# 从库设置 gtid_purged 需要先重置 binlog 信息,可以使用以下命令
mysql> reset master;  # 注意,该操作会删除所有的 binlog 日志, 请谨慎操作
Query OK, 0 rows affected (0.00 sec)  
# 设置已被应用的 gtid 集
mysql> set global gtid_purged='bdd069c3-0e70-11ef-947e-000c29f064be:1-242';   # 这里填写主库的 Executed_Gtid_Set 信息即可
Query OK, 0 rows affected (0.00 sec)
# 接下来可以开启 gtid 复制
change master to ...
start slave;
...

声明

以上内容仅供学习交流,使用前请自行验证。


相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
5月前
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
2月前
|
Ubuntu 关系型数据库 MySQL
MySQL源码编译安装
本文详细介绍了MySQL 8.0及8.4版本的源码编译安装全过程,涵盖用户创建、依赖安装、cmake配置、编译优化等步骤,并提供支持多Linux发行版的一键安装脚本,适用于定制化数据库部署需求。
313 4
MySQL源码编译安装
|
2月前
|
Ubuntu 关系型数据库 MySQL
MySQL二进制包安装
本文详细介绍了在多种Linux系统上通过二进制包安装MySQL 8.0和8.4版本的完整过程,涵盖用户创建、glibc版本匹配、程序解压、环境变量配置、初始化数据库及服务启动等步骤,并提供支持多发行版的一键安装脚本,助力高效部署MySQL环境。
298 4
MySQL二进制包安装
|
2月前
|
安全 关系型数据库 MySQL
MySQL包安装 -- SUSE系列(离线RPM包安装MySQL)
本文详细介绍在openSUSE系统上通过离线RPM包安装MySQL 8.0和8.4版本的完整步骤,包括下载地址、RPM包解压、GPG密钥导入、使用rpm或zypper命令安装及服务启动验证,涵盖初始密码获取与安全修改方法,适用于无网络环境下的MySQL部署。
399 3
MySQL包安装 -- SUSE系列(离线RPM包安装MySQL)
|
2月前
|
关系型数据库 MySQL Linux
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
本文介绍了在openSUSE系统上通过SUSE资源库安装MySQL 8.0和8.4版本的完整步骤,包括配置国内镜像源、安装MySQL服务、启动并验证运行状态,以及修改初始密码等操作,适用于希望在SUSE系列系统中快速部署MySQL的用户。
218 3
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
|
2月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
473 5
|
3月前
|
安全 关系型数据库 MySQL
CentOS 7 yum 安装 MySQL教程
在CentOS 7上安装MySQL 8,其实流程很清晰。首先通过官方Yum仓库来安装服务,然后启动并设为开机自启。最重要的环节是首次安全设置:需要先从日志里找到临时密码来登录,再修改成你自己的密码,并为远程连接创建用户和授权。最后,也别忘了在服务器防火墙上放行3306端口,这样远程才能连上。
646 16
|
2月前
|
Ubuntu 关系型数据库 MySQL
MySQL包安装 -- Debian系列(离线DEB包安装MySQL)
本文详细介绍了在Ubuntu 24.04、22.04、20.04及Debian 12系统上,通过离线DEB包安装MySQL 8.0和8.4版本的完整步骤。涵盖下载地址、依赖处理、dpkg安装顺序、配置方法及服务启动验证,确保用户可顺利部署MySQL数据库。
904 0
MySQL包安装 -- Debian系列(离线DEB包安装MySQL)
|
2月前
|
运维 Ubuntu 关系型数据库
MySQL包安装 -- Debian系列(Apt资源库安装MySQL)
本文介绍了在Debian系列系统(如Ubuntu、Debian 11/12)中通过APT仓库安装MySQL 8.0和8.4版本的完整步骤,涵盖添加官方源、配置国内镜像、安装服务及初始化设置,并验证运行状态,适用于各类Linux运维场景。
787 0
MySQL包安装 -- Debian系列(Apt资源库安装MySQL)
|
2月前
|
Oracle 关系型数据库 MySQL
MySQL包安装 -- RHEL系列(离线RPM包安装MySQL)
本文详细介绍在Rocky、CentOS、AlmaLinux、openEuler等主流Linux系统上,通过离线RPM包安装MySQL 8.0和8.4版本的完整步骤,涵盖下载、依赖处理、rpm/yum安装、服务启动、密码设置等关键环节,适用于多种企业级环境部署需求。
697 0
MySQL包安装 -- RHEL系列(离线RPM包安装MySQL)

推荐镜像

更多