如何在单台CentOS服务器上配置多个MySQL8.0实例

落浩小哥_9556

落浩小哥_9556

2026-09-23

430人浏览

原创

能配,但必须每个实例独占datadir、socket、port、pid-file和log-error;推荐用--defaults-file指向专属配置文件初始化,systemd需使用mysqld@.service模板,连接时须显式指定-p或--socket。

如何在单台centos服务器上配置多个mysql8.0实例

能配,但必须每个实例独占 datadirsocketportpid-filelog-error,缺一不可;用同一套二进制文件完全可行,不需装多个 MySQL 版本。

初始化时必须显式指定 --defaults-file 或全部参数

很多人卡在初始化失败,报错类似 Can't find messagefile '/usr/share/mysql/errmsg.sys' 或直接段错误——根本原因是没告诉 mysqld 该读哪个配置文件,它默认去找系统级 /etc/my.cnf,而那个文件往往不包含你为多实例准备的路径。

  • 推荐方式:用 --defaults-file 指向每个实例专属的配置文件(如 /data/mysql3307/etc/my.cnf),再加 --initialize-insecure(开发环境)或 --initialize(生产环境,会生成临时密码)
  • 备选方式:所有路径参数全写死在命令行,例如:mysqld --initialize --user=mysql --datadir=/data/mysql3307/data --socket=/data/mysql3307/socket/mysql.sock --port=3307 --log-error=/data/mysql3307/log/error.log
  • 千万别省略 --user=mysql,否则初始化出来的数据目录属主是 root,后续启动会因权限拒绝

my.cnf 中必须隔离五类关键路径

一个配置项写错,两个实例就可能抢同一个 socket 文件或 pid 文件,导致启动失败或互相 kill。重点检查以下五项是否全部独立:

MySQL
MySQL

编写正确的MySQL查询,避免字符集、索引和锁方面的常见陷阱。

下载
  • datadir:必须指向各自的数据目录,不能共用,也不能嵌套(比如 /data/mysql/instance1/data/data/mysql/instance1 会冲突)
  • socket:建议用绝对路径,且文件名带端口号,如 /data/mysql3307/socket/mysql.sock
  • pid-file:必须唯一,否则 systemctl start 时无法判断进程是否存活
  • log-error:错误日志路径不同,才能快速定位是哪个实例挂了
  • port:这是最基础的,但容易被忽略的是:如果绑定 bind-address=127.0.0.1,那其他机器连不上;若要远程访问,得设成 0.0.0.0 或具体内网 IP,并确认防火墙放行对应端口

systemd 启动必须用模板服务(mysqld@.service

硬写多个 mysqld3306.servicemysqld3307.service 不仅重复,而且升级后容易被覆盖。标准做法是启用 systemd 的实例化模板:

  • 创建模板文件 /etc/systemd/system/mysqld@.service,其中 ExecStart 要带 %i 占位符,例如:ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/data/mysql%i/etc/my.cnf
  • 重载配置:systemctl daemon-reload
  • 启用并启动:systemctl enable mysqld@3307 && systemctl start mysqld@3307
  • 验证:systemctl status mysqld@3307 看是否 active,再用 ss -tlnp | grep :3307 确认端口监听

连接客户端时必须显式指定 --socket--port

即使配置了多个实例,mysql 命令默认仍连 3306 + /var/lib/mysql/mysql.sock。不指定就会连错,甚至误操作到生产实例。

  • 连本地非默认端口:mysql -u root -p -P 3307(注意大写 -P
  • 连本地非默认 socket:mysql -u root -p --socket=/data/mysql3307/socket/mysql.sock
  • 远程连接必须用 -h + -P,例如:mysql -h 192.168.1.100 -P 3307 -u root -p
  • 别依赖 ~/.my.cnf 里的通用配置,它对多实例场景反而是隐患;如需简化,可为每个实例建单独的 alias,如 alias mysql3307='mysql -P 3307 -u root -p'

最容易被跳过的其实是 server-id ——虽然单机多实例不涉及复制,但如果你后续开启 GTID 或打算做主从,这个值必须全局唯一;建议从实例初始化起就设好,比如 3306 实例设 server-id = 3306,3307 就设 3307,避免以后补救。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

mysql centos

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
服务器是什么
服务器是什么

服务器是一种计算机硬件设备或软件程序,它具有强大的计算和存储能力,用请求、存储数据和提供服务。它在互联网中着关重要的作用,为用户提供各种服务和资源。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.15

417

5

连接apple id服务器时出错
连接apple id服务器时出错

连接apple id服务器时出错的原因包括网络连接问题、服务器问题、Apple ID账户问题、设备问题、防火墙或安全软件问题、时间和日期设置问题、Apple服务器维护等。本专题为大家提供apple id相关的文章、下载、课程内容,供大家免费下载体验。

2023.09.08

820

5

搭建互联网服务器
搭建互联网服务器

搭建互联网服务器需要:1、选择合适的硬件和操作系统,第一步是选择合适的硬件和操作系统;2、安装和配置操作系统,是搭建互联网服务器的关键步骤;3、安装和配置服务器软件,是搭建互联网服务器的下一步,常见的服务器软件包括Apache、Nginx、Tomcat等;4、配置防火墙和安全性,是搭建互联网服务器的重要步骤;5、域名解析和配置,是搭建互联网服务器的最后一步。

2023.09.19

2412

5

如何查看服务器状态
如何查看服务器状态

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。本专题为大家提供服务器状态相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.09

816

5

服务器域名转接慢怎么解决
服务器域名转接慢怎么解决

服务器域名转接慢的解决办法有DNS优化、服务器优化、CDN加速、前端优化和网络优化等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.17

709

5

服务器评测软件
服务器评测软件

服务器评测软件有PassMark Software、CPU-Z、GPU-Z、CrystalDiskMark、IOmeter、JMeter、LoadRunner、Apache Bench等等。详细介绍:1、PassMark Software是一款综合性的服务器性能测试软件,可以评估服务器在各种负载条件下的性能;2、CPU-Z是一款可以提供服务器CPU详细信息的软件等等。

2023.10.17

374

3

如何开启TFTP服务器
如何开启TFTP服务器

开启TFTP服务器的步骤包括选择TFTP服务器软件、下载和安装软件、配置TFTP服务器以及启动和测试服务器等。本专题为大家提供服务器相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

2156

4

服务器负载不兼容怎么解决
服务器负载不兼容怎么解决

解决方法:1、增加服务器资源;2、负载均衡;3、优化应用程序;4、增加缓存机制;5、分布式架构;6、限流和熔断;7、自动化扩容。想知道更详细服务器负载不兼容的解决方法,可以访问本专题下面的文章。

2023.10.20

3972

4

宽带如何接入服务器
宽带如何接入服务器

宽带接入服务器的方法有ADSL宽带接入服务器、光纤接入服务器、无线接入服务器和以太网接入服务器等。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.20

647

5

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
PostgreSQL vs MySQL
PostgreSQL vs MySQL

共1课时 | 170人学习

使用phpenv集成环境安装极致CMS
使用phpenv集成环境安装极致CMS

共2课时 | 274人学习