新闻中心

如何安装多版本mysql共存_mysql多版本共存安装方法

2025-12-06
浏览次数:
返回列表
多版本MySQL可在同一服务器共存,需确保端口、数据目录、套接字和配置文件独立。1. 使用官方二进制包分别解压到不同目录;2. 为每个版本创建独立配置文件(如my-5.7.cnf、my-8.0.cnf),指定不同端口、socket、datadir等;3. 创建对应数据目录并授权;4. 用各自mysqld初始化数据目录;5. 通过--defaults-file启动各实例,并用对应客户端连接。建议避免包管理器安装以防冲突。

如何安装多版本mysql共存_mysql多版本共存安装方法

在一台服务器或开发机上安装多个版本的 MySQL 共存,常见于需要测试不同版本兼容性或维护多个项目的情况。实现多版本共存的关键是避免端口、数据目录、套接字文件和配置文件冲突。下面介绍一种基于 Linux 系统(以 CentOS/Ubuntu 为例)的多版本 MySQL 安装方法。

选择安装方式:推荐使用二进制包

为了便于管理多个版本,建议使用官方提供的二进制压缩包(tar.gz)方式安装,而不是通过系统包管理器(如 yum 或 apt),因为后者容易覆盖或冲突。

  • MySQL 官方下载页面 获取所需版本的 Linux-Generic 二进制包(例如:mysql-5.7.44-linux-glibc2.12-x86_64.tar.gz 和 mysql-8.0.36-linux-glibc2.12-x86_64.tar.gz)
  • 将不同版本解压到独立目录,例如:
    /usr/local/mysql-5.7
    /usr/local/mysql-8.0
  • 创建软链接方便调用(可选):
    ln -s /usr/local/mysql-5.7 /usr/local/mysql57
    ln -s /usr/local/mysql-8.0 /usr/local/mysql80

为每个版本配置独立的配置文件和数据目录

每个 MySQL 实例必须使用不同的配置文件、数据目录、端口和 socket 文件,防止冲突。

  • 为每个版本创建独立的配置文件,例如:
    /etc/my-5.7.cnf
    /etc/my-8.0.cnf
  • 示例 my-5.7.cnf 内容:
[mysqld]
port=3307
socket=/tmp/mysql-5.7.sock
basedir=/usr/local/mysql-5.7
datadir=/var/lib/mysql-5.7
pid-file=/var/lib/mysql-5.7/mysqld.pid
server-id=1
log-error=/var/log/mysql-5.7.log


  • 示例 my-8.0.cnf 内容:
[mysqld]
port=3308
socket=/tmp/mysql-8.0.sock
basedir=/usr/local/mysql-8.0
datadir=/var/lib/mysql-8.0
pid-file=/var/lib/mysql-8.0/mysqld.pid
server-id=2
log-error=/var/log/mysql-8.0.log


  • 提前创建数据目录并授权:
    mkdir /var/lib/mysql-5.7 /var/lib/mysql-8.0
    chown -R mysql:mysql /var/lib/mysql-5.7 /var/lib/mysql-8.0

初始化各自的数据目录

使用对应版本的 mysqld 命令进行初始化,生成 root 密码或设置空密码(根据需求)。

Openflow Openflow

一键极速绘图,赋能行业工作流

Openflow 88 查看详情 Openflow
  • 初始化 MySQL 5.7:
  • /usr/local/mysql-5.7/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-5.7 --datadir=/var/lib/mysql-5.7
  • 初始化 MySQL 8.0:
  • /usr/local/mysql-8.0/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-8.0 --datadir=/var/lib/mysql-8.0
  • 记录输出中的临时 root 密码,后续登录时使用

分别启动与连接不同版本实例

使用 --defaults-file 指定配置文件来启动每个实例。

  • 启动 MySQL 5.7:
  • /usr/local/mysql-5.7/bin/mysqld --defaults-file=/etc/my-5.7.cnf &
  • 启动 MySQL 8.0:
  • /usr/local/mysql-8.0/bin/mysqld --defaults-file=/etc/my-8.0.cnf &
  • 连接 MySQL 5.7:
  • /usr/local/mysql-5.7/bin/mysql -u root -p -S /tmp/mysql-5.7.sock
  • 连接 MySQL 8.0:
  • /usr/local/mysql-8.0/bin/mysql -u root -p -S /tmp/mysql-8.0.sock

如果希望开机自启,可以为每个实例编写 systemd 服务脚本(如 mysql-57.service 和 mysql-80.service),指定各自的配置文件和启动命令。

基本上就这些。只要保证端口、数据目录、socket、配置文件彼此独立,多个 MySQL 版本能稳定共存。操作时注意权限和路径准确性,避免混淆版本导致误操作。

以上就是如何安装多版本mysql共存_mysql多版本共存安装方法的详细内容,更多请关注其它相关文章!


# mysql多版本  # 杭州企业seo外包  # 进贤营销推广招聘电话  # 福州网站推广运营招聘  # 网站建设 南昌  # seo软件公司  # 乳酸菌营销推广方案  # 相关文章  # 所需  # 一台  # 推荐使用  # 工作流  # 如何设置  # 管理器  # 多个  # 镜像  # 配置文件  # 解压  # ubuntu  # 端口  # centos  # linux  # mysql  # mysql安装  # 工装方案优化网站怎么做  # 广告网站建设总结文案  # 泉州百度移动seo  # 京东商城营销推广案例 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: QQ邮箱正确登录入口_QQ邮箱官方网站使用地址  win11怎么查看应用耗电情况 Win11电池设置查看应用能耗排行榜【优化】  一加Ace 6T实拍样张首次公布!李杰:主摄实力完全看齐4K档性能旗舰  C++20的source_location是什么_C++在编译期获取源码位置信息用于日志和断言  魅族17怎样用浏览器译外语网页_iPhone魅族17浏览器译外语网页【即时翻译】  汽水音乐网页版使用入口_汽水音乐电脑版播放指南  J*aScript DOM操作:高效清空列表元素的策略与实践  C++如何实现线程池_C++11手动实现一个简单的固定大小线程池  腾讯QQ邮箱官方网站_QQ邮箱网页版在线登录  在J*a中如何开发简易博客标签推荐系统_博客标签推荐项目实战解析  CSS条件样式无法按设备触发怎么排查_media条件语句正确设置解决触发问题  在Blazor WebAssembly应用中动态注入客户端特定指标代码的策略  如何提高微信支付的安全性_微信支付安全防护与设置建议  淘宝网网页版登录入口 淘宝官方网页版快捷登录  如何创建没有密码的Windows本地账户_跳过微软账户登录的技巧【教程】  探索高级语言到C/C++的转译路径:以Go为例及内存管理策略  MinIO大规模对象列表性能瓶颈深度解析与外部元数据管理策略  J*a如何使用AtomicInteger控制计数_J*a无锁计数器性能分析  vivo浏览器自带的下载器速度慢怎么办 vivo浏览器提升文件下载速度的技巧  Python实时数据流中的动态最值查找策略  CSS布局:解决全屏元素100%尺寸与外边距导致的页面溢出问题  css子元素高度不一致导致布局错位怎么办_使用align-items:stretch解决高度差异  在J*a中如何开发在线活动报名与管理系统_活动报名管理项目实战解析  sublime侧边栏怎么增强功能_SideBarEnhancements for sublime安装与配置  Selenium Python中处理点击后新窗口加载冻结问题的策略与实践  Pandas DataFrame 高效批量赋值:告别循环与笛卡尔积误区  如何在Promise链中有效终止错误处理后的执行  在Qt QML中通过Python字典动态更新TextEdit内容的教程  Go语言HTML解析:利用Goquery精准获取指定元素内容  Win11 USB传输速度慢怎么解决 Win11 USB驱动更新与设置  蛙漫画网页版全站入口 蛙漫热门作品免费浏览  C++ vector二维数组定义_C++ vector of vector用法  NVIDIA股价11月重挫12%:下月有望好转 但难回5万亿美元巅峰  包子漫画官方网站阅读入口-包子漫画在线漫画官网直达链接  在J*a项目里如何构建对象之间的契约_接口约束的实际落地  Go Martini框架:动态服务解码后的图片内容  XML中包含HTML标签导致解析错误? 正确嵌入非XML数据的两种方法  ACG动漫视频网入口 ACG动漫*免费正版观看地址  J*aScript:在map操作中高效处理空数组  解决Python单元测试中Mock异常方法调用计数为零的问题  抖音网页版快捷访问 抖音网页版网页版入口操作教程  Mac怎么使用表情符号_Mac Emoji快捷键面板  谷歌邮箱注册显示错误Gmail服务器异常与延迟处理  Yandex官网免登录入口_俄罗斯Yandex搜索引擎一键访问  J*aScript中正确使用querySelectorAll与复杂CSS选择器  高德地图怎么看全景照片_高德地图全景照片浏览教程  苹果手机指南针不准怎么校准 传感器校准方法详解【建议收藏】  钉钉视频会议声音异常如何处理 钉钉会议音频修复技巧  在Go Martini框架中高效服务动态生成图像的实践指南  Win10如何开启蓝牙功能_Windows10找不到蓝牙开关解决方法 

搜索