MySQL数据库安装_MySQL安装教程

MySQL数据库安装_MySQL安装教程作者:余振兴 一、工具介绍 dbdeployer 是一款十分强大的数据库测试环境部署工具,可实现一键部署不同架构、不同版本的数据库环境。 如:MySQL 主从复制、GTID 模式复制、MySQL 组…

作者:余振兴

一、工具介绍

dbdeployer 是一款十分强大的数据库测试环境部署工具,可实现一键部署不同架构、不同版本的数据库环境。 如:MySQL 主从复制、GTID 模式复制、MySQL 组复制(单主模式、多主模式等) 完整的数据库类型支持及版本,可在安装完 dbdeployer 后使用 dbdeployer admin capabilities 命令进行查看,以下是当前已支持数据库及组件类型

  • Oracle MySQL
  • Percona MySQL
  • MariaDB
  • TiDB
  • MySQL NDB Cluster
  • Percona XtraDB Cluster
  • mysql-shell

本文主要介绍基于 dbdeployer 工具快速搭建 MySQL 测试环境以及 dbdeployer 的基础使用。完整的功能特性以及使用方式可查看 dbdeployer 文档手册,dbdeployer 的文档手册十分详细的介绍了该工具特性及各类使用方式,可查看文末的相关链接。

二、工具安装

本文以 MacOS 下部署为例,Linux 平台安装部署方式基本类似(该工具不提供 Windows 版本),可访问

https://github.com/datacharmer/dbdeployer/releases

获取最新版 dbdeployer 下载链接,以下内容中 shell> 表示命令行提示符

```
## 下载当前最新版软件包
shell> wget https://github.com/datacharmer/dbdeployer/releases/download/v1.42.0/dbdeployer-1.42.0.osx.tar.gz

## 软件解压后实际只有一个单独的编译好的可执行文件
shell> tar xzvf dbdeployer-1.42.0.osx.tar.gz

## 将解压的软件拷贝至系统可执行目录下方便使用
shell> chmod +x dbdeployer-1.42.0.osx
shell> mv dbdeployer-1.42.0.osx /usr/local/bin/dbdeployer

## 验证是否安装成功
shell> dbdeployer --version
shell> dbdeployer --help
```

代码100分

三、工具配置

该软件默认使用当前用户的 $HOME/.dbdeployer/config.json 作为配置文件。该文件默认未生成,可使用 dbdeployer defaults export path 命令导出一份并进行修改。以下我只修改配置文件中的 sandbox-binary 参数,将该目录指定为自定义的 $HOME/sandboxes/mysql_base

代码100分```bash
## 创建 MySQL 软件包及解压后的软件目录
shell> mkdir -p ~/sandboxes/{mysql_package,mysql_base}

## 将默认配置中 sandbox-binary 参数修改为已创建的目录路径
## 该部分也可使用 dbdeployer defaults export /Users/yuzhenxing/.dbdeployer/config.json 先将配置文件导出,再 vim 手工编辑修改
shell> dbdeployer defaults update sandbox-binary $HOME/sandboxes/mysql_base

## 查看已修改的配置信息
## 配置中包含各类 MySQL 的初始化信息,可根据实际情况灵活调整
shell> dbdeployer defaults show
# Configuration file: /Users/yuzhenxing/.dbdeployer/config.json
{
 	"version": "1.39.0",
 	"sandbox-home": "$HOME/sandboxes",
 	"sandbox-binary": "$HOME/sandboxes/mysql_base",
 	"use-sandbox-catalog": true,
 	"log-sb-operations": false,
 	"log-directory": "/Users/yuzhenxing/sandboxes/logs",
 	"cookbook-directory": "recipes",
 	"shell-path": "/bin/bash",
 	"master-slave-base-port": 11000,
 	"group-replication-base-port": 12000,
 	"group-replication-sp-base-port": 13000,
 	"fan-in-replication-base-port": 14000,
 	"all-masters-replication-base-port": 15000,
 	"multiple-base-port": 16000,
 	"pxc-base-port": 18000,
 	"ndb-base-port": 19000,
 	"ndb-cluster-port": 20000,
 	"group-port-delta": 125,
 	"mysqlx-port-delta": 10000,
 	"admin-port-delta": 11000,
 	"master-name": "master",
 	"master-abbr": "m",
 	"node-prefix": "node",
 	"slave-prefix": "slave",
 	"slave-abbr": "s",
 	"sandbox-prefix": "msb_",
 	"imported-sandbox-prefix": "imp_msb_",
 	"master-slave-prefix": "rsandbox_",
 	"group-prefix": "group_msb_",
 	"group-sp-prefix": "group_sp_msb_",
 	"multiple-prefix": "multi_msb_",
 	"fan-in-prefix": "fan_in_msb_",
 	"all-masters-prefix": "all_masters_msb_",
 	"reserved-ports": [
 		1186,
 		3306,
 		33060,
 		33062
 	],
 	"remote-repository": "https://raw.githubusercontent.com/datacharmer/mysql-docker-minimal/master/dbdata",
 	"remote-index-file": "available.json",
 	"remote-completion-url": "https://raw.githubusercontent.com/datacharmer/dbdeployer/master/docs/dbdeployer_completion.sh",
 	"remote-tarball-url": "https://raw.githubusercontent.com/datacharmer/dbdeployer/master/downloads/tarball_list.json",
 	"pxc-prefix": "pxc_msb_",
 	"ndb-prefix": "ndb_msb_",
 	"timestamp": "Thu Nov 21 15:58:56 CST 2019"
 }
```

四、基本使用

在使用之前我们需要先下载好对应操作系统的 MySQL 软件包,dbdeployer 软件提供了下载 MySQL 软件的管理命令,我们可通过 dbdeployer 工具下载,也可自行下载 MySQL 软件包,我们将下载的软件放置在之前已创建好的 ~/sandboxes/mysql_package 目录下。以下以 MacOS 系统为例,Linux 类似。

1. 使用 dbdeployer 下载 MySQL

```bash
## 查看dbdeployer工具支持下载的MySQL软件包
shell> dbdeployer downloads list
Available tarballs  ()
                       name                            OS     version     flavor        size   minimal
--------------------------------------------------- -------- --------- ------------- -------- ---------
 tidb-master-darwin-amd64.tar.gz                     Darwin     3.0.0   tidb           26 MB
 mysql-5.7.26-macos10.14-x86_64.tar.gz               Darwin    5.7.26   mysql         337 MB
 mysql-8.0.16-macos10.14-x86_64.tar.gz               Darwin    8.0.16   mysql         153 MB
 mysql-8.0.15-macos10.14-x86_64.tar.gz               Darwin    8.0.15   mysql         139 MB
 mysql-5.7.25-macos10.14-x86_64.tar.gz               Darwin    5.7.25   mysql         337 MB
 mysql-5.6.41-macos10.13-x86_64.tar.gz               Darwin    5.6.41   mysql         176 MB
 mysql-5.5.53-osx10.9-x86_64.tar.gz                  Darwin    5.5.53   mysql         114 MB
 mysql-5.1.73-osx10.6-x86_64.tar.gz                  Darwin    5.1.73   mysql          82 MB
 mysql-5.0.96-osx10.5-x86_64.tar.gz                  Darwin    5.0.96   mysql          61 MB
 mysql-cluster-8.0.16-dmr-macos10.14-x86_64.tar.gz   Darwin    8.0.16   ndb           252 MB
 mysql-8.0.17-macos10.14-x86_64.tar.gz               Darwin    8.0.17   mysql         155 MB
 mysql-5.7.27-macos10.14-x86_64.tar.gz               Darwin    5.7.27   mysql         337 MB
 mysql-cluster-gpl-7.6.10-macos10.14-x86_64.tar.gz   Darwin    7.6.10   ndb           482 MB
 mysql-cluster-8.0.17-rc-macos10.14-x86_64.tar.gz    Darwin    8.0.17   ndb           255 MB
 mysql-cluster-gpl-7.6.11-macos10.14-x86_64.tar.gz   Darwin    7.6.11   ndb           482 MB
 mysql-shell-8.0.17-macos10.14-x86-64bit.tar.gz      Darwin    8.0.17   mysql-shell    17 MB
 mysql-5.7.28-macos10.14-x86_64.tar.gz               Darwin    5.7.28   mysql         374 MB
 mysql-8.0.18-macos10.14-x86_64.tar.gz               Darwin    8.0.18   mysql         166 MB

## 下载并解压指定软件包
shell> cd sandboxes/mysql_package

shell> dbdeployer downloads get-unpack mysql-8.0.17-macos10.14-x86_64.tar.gz
```

2. 自行下载 MySQL

访问 https://downloads.mysql.com/archives/community/ 可下载各不同版本的 MySQL

代码100分```bash
## 下载并解压MySQL软件包
shell> cd sandboxes/mysql_package

shell> wget https://downloads.mysql.com/archives/get/file/mysql-8.0.17-macos10.14-x86_64.tar.gz

shell> dbdeployer unpack mysql-8.0.17-macos10.14-x86_64.tar.gz
```

3. 快速部署实例

以下示例简单使用几条命令实现各种不同架构的 MySQL 部署,详细使用方式可查看文末 dbdeployer 文档链接。

```bash
## 部署一个单节点的MySQL,开启GTID并指定字符集
## GTID和字符等参数也可在部署完成后在MySQL配置文件中指定
## 注意:部署的数据库默认自动运行,可以指定--skip-start参数只初始化但不启动
shell> dbdeployer deploy single 8.0.17 --gtid --my-cnf-options="character_set_server=utf8mb4"

## 部署一个主从复制MySQL(默认初始化3个节点,一主两从)
shell> dbdeployer deploy replication 8.0.17 --repl-crash-safe --gtid --my-cnf-options="character_set_server=utf8mb4"

## 部署一个单主模式的MGR(默认初始化3个节点)
shell> dbdeployer deploy --topology=group replication 8.0.17 --single-primary

## 部署一个多主模式的MGR(默认初始化3个节点)
shell> dbdeployer deploy --topology=all-masters replication 8.0.17
```

4. 实例组操作

一键部署完成后会在 $HOME/sandboxes 目录下生成各实例组对应的数据目录,该目录包含以下信息(部分信息)

  • 一键启停该组所有实例的脚本
  • 一键登录数据库脚本
  • 一键重置该组所有实例的脚本(清除所有测试数据并重新初始化成全新的主从)
  • 主从实例的数据目录(主库为 master,从库分别为 node1、node2 依次递增)
    • 各实例的配置文件
    • 默认用户授权命令
    • 单独启停实例命令
    • binlog、relaylog 解析命令

使用示例

```bash
## 查看该组所有实例状态
shell> cd ~/sandboxes/rsandbox_8_0_17
shell> ./status_all
REPLICATION  /Users/yuzhenxing/sandboxes/rsandbox_8_0_17
master : master on  -  port	20718 (20718)
node1 : node1 on  -  port	20719 (20719)
node2 : node2 on  -  port	20720 (20720)

## 一键重启该组所有实例
shell> ./restart_all
stop /Users/yuzhenxing/sandboxes/rsandbox_8_0_17/master
stop /Users/yuzhenxing/sandboxes/rsandbox_8_0_17/node1
stop /Users/yuzhenxing/sandboxes/rsandbox_8_0_17/node2
executing "start" on master
. sandbox server started
executing "start" on slave 1
. sandbox server started
executing "start" on slave 2
. sandbox server started

## 单独重启该组某一实例
shell> cd ~/sandboxes/rsandbox_8_0_17/master
shell> ./restart

## 登录指定实例
shell> ./use
```

五、dbdeployer 常用管理命令

以下是使用 dbdeployer 过程中总结的常用命令,详细使用方式可查看文末 dbdeployer 文档链接。

```bash
## 查看 dbdeployer 支持的各类数据库版本及版本特性(输出信息过长或过多,已省略输出结果)
shell> dbdeployer admin capabilities
shell> dbdeployer admin capabilities percona
shell> dbdeployer admin capabilities mysql


## 使用 dbdeployer 查看指定版本 MySQL 的基本信息
shell> dbdeployer downloads get-by-version 5.7 --newest --dry-run

Name:          mysql-5.7.28-macos10.14-x86_64.tar.gz
Short version: 5.7
Version:       5.7.28
Flavor:        mysql
OS:            Darwin
URL:           https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.28-macos10.14-x86_64.tar.gz
Checksum:      MD5: 00c2cabb06d8573b5b52d3dd1576731e
Size:          374 MB

## 查看当前已安装的所有 MySQL 基本信息
## 包括架构类型、版本、端口等等(输出信息过长或过多,已省略输出结果)
shell> dbdeployer sandboxes --full-info

## 查看各组 MySQL 的运行情况
shell> dbdeployer global status
MULTIPLE  /Users/yuzhenxing/sandboxes/all_masters_msb_8_0_17
node1 : node1 on  -  port	23818 (23818)
node2 : node2 on  -  port	23819 (23819)
node3 : node3 on  -  port	23820 (23820)

MULTIPLE  /Users/yuzhenxing/sandboxes/group_sp_msb_8_0_17
node1 : node1 off  -   (22718)
node2 : node2 off  -   (22719)
node3 : node3 off  -   (22720)

## 批量停止所有运行的 MySQL (输出信息过长或过多,已省略输出结果)
shell> dbdeployer global stop

## 删除已部署的 MySQL 实例
## 如正在运行则会先停止,后清除实例相关目录
shell> dbdeployer delete msb_8_0_17

## 可对实例加锁,防止误删除
## dbdeployer sandboxes --full-info 命令可查的到哪组实例已加锁
shell> dbdeployer admin lock group_sp_msb_8_0_17
shell> dbdeployer delete group_sp_msb_8_0_17
shell> dbdeployer admin unlock group_sp_msb_8_0_17
shell> dbdeployer sandboxes --full-info
```

其他更多的 dbdeployer 使用和管理命令,可执行 dbdeployer 或dbdeployer –help 进行查看,更详尽的使用方式和使用示例可查看文末的 dbdeployer 官方手册链接。

六、相关链接

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/10716.html

(0)
上一篇 2022-12-23
下一篇 2022-12-23

相关推荐

  • 设置远程桌面连接 批量管理云服务器「建议收藏」

    设置远程桌面连接 批量管理云服务器「建议收藏」远程桌面是微软公司为了便于网络管理员管理维护服务器推出的一项服务。从windows 2000 server版本开始引入,网络管理员时候远程桌面连接器连接到网络任意一台开启了远程桌面控制功能的计算机上…

    2023-02-19
    158
  • mysql – 查看数据库

    mysql – 查看数据库
    在 MySQL 中,可使用 SHOW DATABASES 语句来查看或显示当前用户权限范围以内的数据库。查看数据库的语法格式为: SHOW DATABASE…

    2023-04-07
    157
  • Python列表排序指南

    Python列表排序指南Python列表是一种非常常用的数据类型,在实际编程中,我们经常需要对列表进行排序。排序是将列表按照某种规则进行重新排列的过程,Python提供了多种排序方式,本文将从多个方面对列表排序进行详细的阐述。

    2024-09-06
    31
  • 存储体系

    存储体系存储体系 计算机存储体系分为多级,常见的有小到cpu内部的寄存器、cache,大到内存、磁盘、磁带以及各式可插拔的usb设备等都属于存储体系的一员,一个常见的直观的图如下: 从最顶端的cpu开始一直到

    2023-04-16
    433
  • Python时间加减操作

    Python时间加减操作在日常编程中,时间操作是非常常见的。而对于Python开发人员而言,Python中提供的时间加减操作功能是非常强大的。Python的日期时间模块datetime可以方便地对时间进行计算、格式化、转换等操作。对时间加减操作的掌握不仅可以提高程序的实用性和可读性,而且可以使得编码更加高效。

    2024-07-01
    45
  • 做一个平台,让对手发来一个很烂的sql,然后系统返回一个优化好的sql(一)「建议收藏」

    做一个平台,让对手发来一个很烂的sql,然后系统返回一个优化好的sql(一)「建议收藏」
    我们要做的事情大概分3步: 1、需求的描述(主要把问题点抛出来) 2、解决如何优化sql性能的问题(hive关于一条sql的生命周期源码的分析),也就是如何…

    2023-04-06
    156
  • csv和excel读取和下载「建议收藏」

    csv和excel读取和下载「建议收藏」同时,使用FileReader对象,web应用程序可以异步的读取存储在用户计算机上的文件(或者原始数据缓冲)内容,可以使用File对象或者Blob对象来指定所要处理的文件或数据。FileReader 提供了如下 几个方法。 readAsText(file,encoding):以…

    2023-03-02
    152
  • [亲测有效]

    [亲测有效]You can’t access this shared folder because your organization’s security policies block unauthentic…

    2023-04-06
    161

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注