CentOS7.5使用mysql_multi方式安装MySQL5.7.28多实例(详解)

yizhihongxing

我们来详细讲解“CentOS7.5使用mysql_multi方式安装MySQL5.7.28多实例(详解)”的操作步骤。

1. 准备工作

1.1 安装mysql源

# 下载rpm包
wget http://repo.mysql.com/mysql57-community-release-el7.rpm

# 安装rpm包
sudo rpm -ivh mysql57-community-release-el7.rpm

# 更新yum源并安装
sudo yum update
sudo yum install mysql-community-server mysql-community-client

1.2 修改默认安装目录

MySQL默认的安装目录是 /var/lib/mysql,为了能够方便的使用 mysql_multi 方式来管理多个 MySQL 服务器实例,我们需要将 MySQL 的安装目录改为 /home/mysql

# 停止 MySQL 服务
sudo systemctl stop mysqld.service

# 备份 /var/lib/mysql 数据目录
sudo mv /var/lib/mysql /var/lib/mysql.bak

# 创建新的 /home/mysql 数据目录
sudo mkdir -p /home/mysql

# 复制原有数据到 /home/mysql 目录
sudo cp -rf /var/lib/mysql.bak/* /home/mysql

# 修改数据目录权限
sudo chown -R mysql:mysql /home/mysql

# 修改配置文件中的路径
sudo vim /etc/my.cnf

# 在 [mysqld] 段添加下面两行,并将 datadir 和 socket 参数指向新的 /home/mysql 目录
[mysqld]
datadir=/home/mysql
socket=/home/mysql/mysql.sock

# 重启 MySQL 服务
sudo systemctl start mysqld.service

1.3 初始化 MySQL

sudo mysql_secure_installation

2. 创建多实例

2.1 安装 perl-Module-Install

mysql_multi 需要依赖 perl-Module-Install 进行安装,因此需要先安装该组件。

sudo yum install -y perl-Module-Install

2.2 修改 my.cnf 对应配置文件

每个实例的配置文件都需要独立配置。在我的配置中,我创建了两个实例,分别为 instance1、instance2。在修改配置文件时,需要将配置文件名修改为对应实例名。

# 复制默认配置文件到新的配置文件,修改为对应实例名
sudo cp /etc/my.cnf /etc/my-instance1.cnf
sudo cp /etc/my.cnf /etc/my-instance2.cnf

# 修改 my-instance1.cnf 文件
sudo vim /etc/my-instance1.cnf
[mysqld]
pid-file=/home/mysql/instance1/mysql.pid
socket=/home/mysql/instance1/mysql.sock
port=3308
innodb_buffer_pool_size=128M
log-bin=mysql-bin
log-error=mysql-bin.err

# 修改 my-instance2.cnf 文件
sudo vim /etc/my-instance2.cnf
[mysqld]
pid-file=/home/mysql/instance2/mysql.pid
socket=/home/mysql/instance2/mysql.sock
port=3309
innodb_buffer_pool_size=256M
log-bin=mysql-bin
log-error=mysql-bin.err

2.3 创建实例

使用 mysql_multi 命令来创建实例。

sudo mysql_multi stop
sudo mysql_multi report
sudo mysql_multi start instance1
sudo mysql_multi start instance2
sudo mysql_multi report

通过 mysql_multi report 命令来查看创建的实例信息。

3. 示例说明

3.1 示例一

3.1.1 创建新实例

假设我们想要创建一个名为 test 的新实例,并将其端口号设置为 3333,需要按照如下步骤进行操作:

# 创建新的配置文件
sudo cp /etc/my.cnf /etc/my-test.cnf

# 修改对应参数
sudo vim /etc/my-test.cnf
[mysqld]
pid-file=/home/mysql/test/mysql.pid
socket=/home/mysql/test/mysql.sock
port=3333
innodb_buffer_pool_size=512M
log-bin=mysql-bin
log-error=mysql-bin.err

# 创建新实例
sudo mysql_multi start test

3.1.2 连接到新实例

使用命令 mysql --socket=/home/mysql/test/mysql.sock 来连接到新实例。

# 连接到新实例
mysql --socket=/home/mysql/test/mysql.sock

3.2 示例二

3.2.1 删除现有实例

假设我们不再需要 instance2 实例,需要将其删除,需要按照如下步骤进行操作:

# 删除实例
sudo mysql_multi stop
sudo mysql_multi report
sudo mysql_multi remove instance2
sudo mysql_multi report

3.2.2 修改现有实例

假设我们需要将 test 实例的端口号修改为 3334,需要按照如下步骤进行操作:

# 修改配置文件
sudo vim /etc/my-test.cnf
[mysqld]
pid-file=/home/mysql/test/mysql.pid
socket=/home/mysql/test/mysql.sock
port=3334
innodb_buffer_pool_size=512M
log-bin=mysql-bin
log-error=mysql-bin.err

# 重启实例
sudo mysql_multi restart test

这就是 “CentOS7.5使用mysql_multi方式安装MySQL5.7.28多实例(详解)” 的攻略,希望对您有帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:CentOS7.5使用mysql_multi方式安装MySQL5.7.28多实例(详解) - Python技术站

(0)
上一篇 2023年5月22日
下一篇 2023年5月22日

相关文章

  • SQL 组合使用外连接查询与聚合函数

    下面我给您讲解SQL组合使用外连接查询与聚合函数的完整攻略。 首先我们来说一下外连接查询和聚合函数的概念: 外连接查询:外连接查询是查询两个表之间关联关系的一种方式,它可以查询到主表(左表)以及与其相关联的从表(右表)中所有的记录,如果两个表中某些记录没有关联,那么该记录也会被查询出来,只是对应的从表部分信息为NULL。 聚合函数:聚合函数是指那些执行某种特…

    database 2023年3月27日
    00
  • SQLite 和 CouchDB 的区别

    SQLite和CouchDB是两种不同类型的数据库,有一定的不同之处。下面我详细讲解一下SQLite和CouchDB之间的区别: SQLite 什么是SQLite SQLite是一种嵌入式数据库,它是一个开源的SQL数据库,可以存储在本地磁盘上。SQLite数据存储在文件中,而不是在服务器上。因此,SQLite适合存储小型数据集的应用程序,如移动应用程序和桌…

    database 2023年3月27日
    00
  • Spark学习笔记(一)Spark初识【特性、组成、应用】

    Spark学习笔记(一)Spark初识:特性、组成与应用 什么是Spark? Spark是一种基于内存的大数据处理框架。它提供了一个分布式计算引擎,可在大规模数据集上迅速进行计算。Spark可以跨越多个计算平台,包括Hadoop、Mesos、Kubernetes等。 Spark的特性 Spark的特点可以总结如下: 更快的速度:Spark通过内存计算和更好的…

    database 2023年5月22日
    00
  • MySQL子查询注意事项

    MySQL子查询是指在一个查询语句中嵌套另一个查询语句,通常是在WHERE子句中使用。下面详细介绍MySQL子查询的注意事项。 子查询要用小括号包含起来。 子查询可以嵌套多层。 子查询可以在SELECT、FROM、WHERE、HAVING等语句中使用。 子查询与主查询是相互独立的,即子查询能够单独执行。 子查询返回的结果只能是一行或一列,否则会报错。 子查询…

    MySQL 2023年3月9日
    00
  • 详解Hibernate缓存与性能优化

    详解Hibernate缓存与性能优化 缓存介绍 Hibernate是一个开源的ORM框架,ORM(Object-Relational Mapping)即对象关系映射,它将Java对象和关系型数据库中的表进行映射,在此过程中Hibernate会使用到缓存。 缓存是为了提高读取数据的性能而存在的,其主要作用是把数据存储到内存中,避免频繁地从数据库中读取数据。 H…

    database 2023年5月19日
    00
  • mysql动态游标学习(mysql存储过程游标)

    MySQL动态游标学习 在MySQL存储过程中,游标是用于遍历一个结果集并对每一行进行处理的机制。它可以将结果集的某个字段的值赋给一个变量,并在每一次处理时将游标移动到下一个记录上。MySQL存储过程提供了两种类型的游标: 静态游标和动态游标。本文主要介绍动态游标的使用。 动态游标 动态游标在定义时必须使用一个SELECT语句,这个语句的结果集就是动态游标的…

    database 2023年5月22日
    00
  • MongoDB插入文档使用方法(详解版)

    MongoDB是一种流行的文档数据库,非常灵活和易于使用。文档是MongoDB的核心概念,因此在使用MongoDB时,插入文档将是我们的第一步。 下面我们将详细解释MongoDB插入文档的完整攻略。 步骤1:连接MongoDB数据库 在使用MongoDB之前,首先需要连接数据库。根据您的需求,您可以连接到本地或远程数据库。MongoDB的默认端口是27017…

    MongoDB 2023年3月14日
    00
  • 如何用docker部署redis cluster的方法

    下面是使用Docker部署Redis Cluster的攻略,具体过程如下: 1. 搭建 Redis Cluster Docker 环境 首先启动三个 Redis Docker 镜像,并将它们进行彼此链接: 1.1. 创建 Redis Docker 网络 首先我们要创建一个 Docker 网络用来在不同的容器间进行通信,这里使用 Bridge 模式的网络: $…

    database 2023年5月22日
    00
合作推广
合作推广
分享本页
返回顶部