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

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
日志服务 SLS,月写入数据量 50GB 1个月
简介: 【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;
...

声明

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


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
28天前
|
安全 关系型数据库 MySQL
mysql8安装
本文介绍了在 CentOS 7 上安装 MySQL 5.7 的详细步骤,包括下载、环境准备、系统配置、安装过程及启动方法。首先通过wget下载MySQL压缩包并解压至指定目录,接着进行主机名修改、依赖安装、用户与用户组创建、ulimit配置等环境准备工作。随后,对操作系统环境进行调整,如文件句柄和进程数的设置、内核参数优化、SELinux和防火墙的关闭等。最后,完成MySQL的安装配置,创建数据和日志目录,初始化MySQL,并设置启动脚本和环境变量,确保MySQL能够正常运行。
70 4
|
29天前
|
安全 关系型数据库 MySQL
Linux下安装mysql8.0(以tar.xz包安装--编译安装)
通过上述步骤,您完成了从下载、编译、安装到配置MySQL 8.0的全过程。此过程虽然较为复杂,但提供了对MySQL安装环境的完全控制,有助于满足特定的部署需求。在实际操作中,根据具体的系统环境,可能还需调整部分步骤或解决未预见的依赖问题。始终参考官方文档和社区资源,保持安装过程与最新版本的兼容性。
516 67
|
22天前
|
关系型数据库 MySQL Linux
Docker安装Mysql5.7,解决无法访问DockerHub问题
当 Docker Hub 无法访问时,可以通过配置国内镜像加速来解决应用安装失败和镜像拉取超时的问题。本文介绍了如何在 CentOS 上一键配置国内镜像加速,并成功拉取 MySQL 5.7 镜像。
185 2
Docker安装Mysql5.7,解决无法访问DockerHub问题
|
6天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
21 3
|
7天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。
本文介绍了在 CentOS 7 中通过编译源码安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。内容涵盖准备工作、下载源码、编译安装、配置服务、登录设置及实践心得,帮助读者根据需求选择最适合的安装方法。
15 2
|
8天前
|
存储 SQL 关系型数据库
2024Mysql And Redis基础与进阶操作系列(1)作者——LJS[含MySQL的下载、安装、配置详解步骤及报错对应解决方法]
Mysql And Redis基础与进阶操作系列(1)之[MySQL的下载、安装、配置详解步骤及报错对应解决方法]
|
9天前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,包括准备工作、下载源码、编译安装、配置 MySQL 服务、登录设置等。同时,文章还对比了编译源码安装与使用 RPM 包安装的优缺点,帮助读者根据需求选择最合适的方法。通过具体案例,展示了编译源码安装的灵活性和定制性。
45 2
|
1月前
|
SQL 关系型数据库 MySQL
|
21天前
|
SQL Oracle 关系型数据库
安装最新 MySQL 8.0 数据库(教学用)
安装最新 MySQL 8.0 数据库(教学用)
93 4
|
1月前
|
tengine 关系型数据库 MySQL
Tengine、Nginx安装MySQL数据库命令教程
本指南详细介绍了在Linux系统上安装与配置MySQL数据库的步骤。首先通过下载并安装MySQL社区版本,接着启动MySQL服务,使用`systemctl start mysqld.service`命令。若启动失败,可尝试使用`sudo /etc/init.d/mysqld start`。利用`systemctl status mysqld.service`检查MySQL的服务状态,确保其处于运行中。通过日志文件获取初始密码,使用该密码登录数据库,并按要求更改初始密码以增强安全性。随后创建一个名为`tengine`的数据库,最后验证数据库创建是否成功以及完成整个设置流程。

推荐镜像

更多