Mac下使用homebrew管理多版本mysql同时启动

ops/2024/9/25 2:09:28/

mysql_0">Mac下使用homebrew管理多版本mysql同时启动

思路

给每个版本分配不同的数据目录和配置文件即可

本文尝试了使用 brew 安装管理多个MySQL版本,同时运行、直接切换

安装

如果已有数据文件请自行备份以及使用

mysql_57_14">安装 mysql 5.7
brew install mysql@5.7

/opt/homebrew/var/mysql 目录为空时,安装过程会自动生成数据目录,可在安装过程中看到执行了生成数据目录的命令 (目录如果有文件则不会执行该命令)

/opt/homebrew/Cellar/mysql@5.7/5.7.41/bin/mysqld --initialize-insecure --user=XXXX --basedir=/opt/homebrew/Cellar/mysql@5.7/5.7.41 --datadir=/opt/homebrew/var/mysql --tmpdir=/tmp

准备好5.7的文件

mv /opt/homebrew/var/mysql  /opt/homebrew/var/mysql@5.7
cp /opt/homebrew/etc/my.cnf /opt/homebrew/etc/my@5.7.cnf

修改配置文件

  • 指定配置文件--defaults-file
  • 修改datadirWorkingDirectory路径
...
ExecStart=/opt/homebrew/opt/mysql@5.7/bin/mysqld_safe --defaults-file=/opt/homebrew/etc/my@5.7.cnf  --datadir=/opt/homebrew/var/mysql@5.7
...
WorkingDirectory=/opt/homebrew/var/mysql@5.7
.../opt/homebrew/Cellar/mysql@5.7/5.7.41/homebrew.mysql@5.7.service
...
<array><string>/opt/homebrew/opt/mysql@5.7/bin/mysqld_safe</string><string>--defaults-file=/opt/homebrew/etc/my@5.7.cnf</string><string>--datadir=/opt/homebrew/var/mysql@5.7</string>
</array>
...
<key>WorkingDirectory</key>
<string>/opt/homebrew/var/mysql@5.7</string>
.../opt/homebrew/Cellar/mysql@5.7/5.7.41/homebrew.mxcl.mysql@5.7.plist

更改端口和socket不需要同时运行的可以不改

[mysqld]
port = 3307
socket = /tmp/mysql@5.7.sock/opt/homebrew/etc/my@5.7.cnf

启动 & 测试

brew services stop mysql@5.7
brew services start mysql@5.7
mysql_80_77">安装 mysql 8.0
brew install mysql@8.0
brew services start mysql

数据目录和配置文件就不改了,使用默认的

结束

多版本完美运行
在这里插入图片描述

分别重置密码

mysql_secure_installation -h127.0.0.1 -P3307

连接不同服务端

mysql -h127.0.0.1 -P3307

http://www.ppmy.cn/ops/25133.html

相关文章

Linux——web动态内容和CGI

一、动态内容 配置动态内容一般出于下面这几点的考虑&#xff1a; 1. 实时数据更新&#xff1a;动态站点可以根据用户的请求和操作实时生成内容&#xff0c;从而确保站点的数据和内容 始 终保持最新。这对于需要频繁更新或者与用户交互的网站非常重要&#xff0c;比如社交媒体…

vue3中的reactive、readonly和shallowReactive

在 Vue 3 中&#xff0c;reactive、readonly 和 shallowReactive 是用于创建响应式对象的函数&#xff0c;它们可以帮助管理组件状态和数据流。下面是它们的详细介绍以及相应的代码示例&#xff1a; reactive: reactive 函数用于创建一个完全响应式的对象&#xff0c;当对象的属…

# IntelliJ IDEA 中 springboot 启动类 SpringApplication.run 报红分析

IntelliJ IDEA 中 springboot 启动类 SpringApplication.run 报红分析 一、原因分析&#xff1a;通常 SpringApplication.run 报红&#xff0c;可能是由以下几种原因造成的&#xff1a; 1、项目的主配置文件中 pom.xml 可能没有导入相关依赖。 2、方法参数错误&#xff1a;S…

table表格导出为excel文件并设置样式

table表格导出为excel文件并设置样式 安装xlsx、xlsx-style-medalsoft 的 npm 包&#xff1a; npm i xlsx xlsx-style-medalsoft设置全局&#xff1a; Vue.prototype.$XLSX XLSX; // 设置全局 Vue.prototype.$XLSXStyle XLSXStyle; // 设置全局具体代码实现&#xff1a; …

利用Python开发一个上传文件的服务

准备工作&#xff1a; 1、安装uvicorn&#xff0c;利用其来作为web服务器 2、安装Starlette&#xff0c;利用其来作为web开发框架 3、安装python-multipart&#xff0c;让其支持form表达形式的文件上传 4、postman&#xff1a;文件上传的发起者&#xff0c;这样我们就不用写…

Visual Studio C++ 示例

Visual Studio C++ 示例 项目2023/06/163 个参与者反馈 本文内容 GitHub 上的存档 C++ 示例ATL 示例CLR 和语言示例 - Windows 窗体COM 事件示例显示另外 13 个 Visual Studio C++ 示例可在 Web 上找到。 Microsoft 已生成许多 C++ 示例,这些示例演示了跨多种技术的不同功能…

React、React Router 和 Redux 常用Hooks 总结,提升您的开发效率!

Hooks 是 React 16.8 中引入的一种新特性&#xff0c;它使得函数组件可以使用 state 和其他 React 特性&#xff0c;从而大大提高了函数组件的灵活性和功能性。下面分别总结React、React Router 、Redux中常用的Hooks。 常用Hooks速记 React Hooks useState&#xff1a;用于…

MATLAB的几种边缘检测算子(Sobel、Prewitt、Laplacian)

MATLAB的几种边缘检测算子(Sobel、Prewitt、Laplacian) clc;close all;clear all;warning off;%清除变量 rand(seed, 100); randn(seed, 100); format long g;% 读取图像 image imread(lena.png); % 转换为灰度图像 gray_image rgb2gray(image); % 转换为double类型以进行计算…