MySQL多实例部署指南:一机多用,资源优化的艺术

一.多实例的概念

一般在一个系统环境中,可以运行多个相同的服务程序信息,并且产生不同的进程和网络端口信息,就可以称为多实例概念;

在数据库服务运行过程中,也可以启动多个数据库服务程序,产生多个数据库服务进程和不同的服务端口,形成多实例;

多个数据库服务实例信息中存储的数据库信息是相互隔离和独立的,并且利用数据库服务多实例可以实现测试与分布式架构需求;

二.为什么需要多实例部署

场景痛点

  • 服务器资源过剩,单实例无法充分利用CPU/内存
  • 需要隔离生产/测试/分析环境
  • 不同业务线需独立数据库实例(如订单、用户、日志)
  • 实现MySQL版本多环境共存(5.7/8.0并行测试)

核心优势
🚀 资源利用率提升:单机承载多个实例,降低硬件成本
🔒 环境隔离:独立配置、独立连接池、独立故障域
🎯 灵活管理:按需启停实例,灰度升级无压力

三.手把手搭建多实例(数据目录隔离方案)

步骤一:多实例部署环境规划

实例信息编号 实例服务端口 实例存储路径 实例配置文件 套接字文件
mysql-01 端口信息:3307 /data/3307/data /data/3307/data/my.cnf /tmp/mysql3307.sock
mysql-02 端口信息:3308 /data/3308/data /data/3308/data/my.cnf /tmp/mysql3308.sock
mysql-03 端口信息:3309 /data/3309/data /data/3309/data/my.cnf /tmp/mysql3309.sock

步骤二:多实例部署环境准备(数据目录创建)

# 停止数据库
systemctl stop mysqld

# 创建数据库多实例所需目录
[root@xiaoQ-01 ~]# mkdir -p /data/330{7..9}/data

# 授权数据库多实例所需权限
[root@xiaoQ-01 ~]# chown -R mysql. /data/*

第三步:进行不同实例初始化

# 多实例初始化配置前调整操作
[root@xiaoQ-01 ~]# mv /etc/my.cnf  /etc/my.cnf.bak

# 多实例初始化操作过程(注意:在初始化前要检查数据目录下没有内容)
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3307/data
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3308/data
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3309/data
-- 初始化完毕后可以检查数据库目录中,是否已经存在了数据库初始化产生的数据文件信息;

第四步:编写配置文件

vim /data/3307/data/my.cnf
[mysql]
socket=/tmp/mysql3307.sock
[mysqld]
user=mysql
port=3307
basedir=/usr/local/mysql
datadir=/data/3307/data
socket=/tmp/mysql3307.sock

========================================================
vim /data/3308/data/my.cnf
[mysql]
socket=/tmp/mysql3308.sock
[mysqld]
user=mysql
port=3308
basedir=/usr/local/mysql
datadir=/data/3308/data
socket=/tmp/mysql3308.sock

========================================================
vim /data/3309/data/my.cnf
[mysql]
socket=/tmp/mysql3309.sock
[mysqld]
user=mysql
port=3309
basedir=/usr/local/mysql
datadir=/data/3309/data
socket=/tmp/mysql3309.sock

第五步:启动运行多实例服务

  mysqld_safe --defaults-file=/data/3307/data/my.cnf &
  mysqld_safe --defaults-file=/data/3308/data/my.cnf &
  mysqld_safe --defaults-file=/data/3309/data/my.cnf &

步骤六:验证多实例启动状态

方法一:查看端口

ss -lntup
image-20250508152708871

方法二:客户端连接测试

image-20250508152319859
image-20250508152400029
image-20250508152437807

结语

MySQL多实例部署如同在有限的土地上建造多层智能建筑:
规划阶段:明确各实例用途,合理分配资源
建设阶段:严格隔离配置,避免相互干扰
运维阶段:建立监控体系,实施分级备份

掌握多实例管理,让您的数据库服务器从“独栋别墅”变身“摩天大楼”,在资源利用率和业务灵活性之间找到完美平衡点!

posted @ 2025-05-08 17:09  不断精进,终生成长  阅读(81)  评论(0)    收藏  举报