当前位置:   article > 正文

M系列芯片Mac下使用homebrew管理多版本mysql同时启动

m系列芯片mac下使用homebrew管理多版本mysql同时启动

M系列芯片Mac下使用homebrew管理多版本mysql同时启动

问题

brew 默认情况下,是选择其中一个版本的MySQL运行,通过如下命令切换,将不同版本的可执行文件链接到PATH下

brew unlink mysql
brew link mysql@5.7
  • 1
  • 2

存在的问题是,不同版本的数据库使用了用一个数据目录 --datadir=/opt/homebrew/var/mysql

这导致直接切换,数据库会直接宕掉。所以切换前要备份数据目录并手动切换到对应的版本中去

思路

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

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

安装

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

安装 mysql 5.7

brew install mysql@5.7
  • 1

/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**
  • 1

准备好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
  • 1
  • 2

修改配置文件

  • 指定配置文件--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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

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

[mysqld]
port = 3307
socket = /tmp/mysql@5.7.sock

/opt/homebrew/etc/my@5.7.cnf
  • 1
  • 2
  • 3
  • 4
  • 5

启动 & 测试

brew services stop mysql@5.7
brew services start mysql@5.7
  • 1
  • 2

安装 mysql 8.0

brew install mysql@8.0
brew services start mysql
  • 1
  • 2

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

结束

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

分别重置密码

mysql_secure_installation -h127.0.0.1 -P3307
  • 1

连接不同服务端

mysql -h127.0.0.1 -P3307
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/529699
推荐阅读
相关标签
  

闽ICP备14008679号