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

我们来详细讲解“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日

相关文章

  • PHP扩展模块Pecl、Pear以及Perl的区别

    PHP扩展模块Pecl、Pear以及Perl的区别: Pecl和Pear Pear(PHP Extension and Application Repository)和 Pecl(PHP Extension Community Library)都是PHP扩展的仓库,但是它们的目的和方向不同。 Pear包含了PHP的类库和一些应用程序,使得开发者可以快速地构建…

    database 2023年5月22日
    00
  • MySQL 使用SQL语句修改表名的实现

    MySQL 使用 SQL 语句修改表名需要使用 ALTER TABLE 语句,具体步骤如下: 使用 MySQL 命令行工具或者其他管理工具登录到 MySQL 数据库。 选择要修改名字的表所在的数据库: USE database_name; 其中 database_name 是数据库的名字。 使用 ALTER TABLE 语句修改表名。ALTER TABLE …

    database 2023年5月21日
    00
  • 当mysqlbinlog版本与mysql不一致时可能导致出哪些问题

    当mysqlbinlog版本与MySQL版本不匹配时,可能会出现以下问题: 数据丢失或重复如果使用mysqlbinlog恢复MySQL数据时,mysqlbinlog的版本与MySQL服务器不一致,可能会出现数据丢失或重复的问题。这可能会影响到数据的完整性和准确性。 恢复失败如果mysqlbinlog的版本与MySQL服务器不匹配,则有可能出现恢复失败的情况。…

    database 2023年5月22日
    00
  • MySql删除和更新操作对性能有影响吗

    当进行删除和更新操作时,MySQL会涉及到数据的物理删除和更新,这可能会对性能产生一定的影响。下面我将详细讲解MySQL的删除和更新操作对性能的影响以及如何优化。 MySQL删除操作对性能的影响 MySQL的删除操作会先查询要删除的数据,然后再将其从磁盘上删除。如果该表上有索引,则删除操作可能会导致索引的重建,进一步降低性能。此外,删除操作还会影响表的统计信…

    database 2023年5月19日
    00
  • Oracle还原恢复启动时数据库报ORA-00704、 ORA-00604,、ORA-00904的问题解决

    问题描述:在启动Oracle数据库时,可能会遇到ORA-00704、ORA-00604、ORA-00904等错误,这些错误表示数据库的恢复/还原操作有问题,导致数据库无法启动。 以下是解决该问题的完整攻略: 1. 检查数据库文件 首先,检查数据库的文件是否存在,包括控制文件、数据文件、日志文件等。如果文件不存在或文件损坏,则需要进行数据库的恢复操作。 如果数…

    database 2023年5月19日
    00
  • C#实现Access通用访问类OleDbHelper完整实例

    为方便使用和操作Access数据库,我们可以开发一个通用访问类,可以实现对Access的封装和统一管理。本文将详细讲解C#实现Access通用访问类OleDbHelper完整实例的攻略。 介绍 OleDb是一种Microsoft发布的一种访问不同数据源的统一接口,并为不同应用程序提供统一的方式访问数据库。OleDb由系统提供,是系统自带支持的。在访问Acce…

    database 2023年5月21日
    00
  • Teradata和CouchDB的区别

    Teradata 和 CouchDB 的区别 Teradata和CouchDB是两个不同的数据库管理系统,它们的设计目标、数据模型、查询语言、存储方式等均有所不同,接下来我们具体介绍一下它们之间的区别。 设计目标 Teradata是一款主要应用于企业数据仓库系统的强大数据库管理系统,旨在为多个应用系统提供集中的数据存储和管理。它可以承载海量的数据,支持高并发…

    database 2023年3月27日
    00
  • 查询Oracle中正在执行和执行过的SQL语句

    要查询Oracle数据库中正在执行和执行过的SQL语句,可以进行以下步骤: 步骤1:开启SQL跟踪 在Oracle数据库中,SQL跟踪是一种捕捉SQL执行信息的机制,它可以记录SQL语句的执行时间、执行计划、I/O等信息。要查询数据库中正在执行和执行过的SQL语句,需要先开启SQL跟踪。可以通过以下命令开启SQL跟踪: ALTER SESSION SET S…

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