macOS brew 安装两个版本的MySQL
05-17 10:59
字数 3741
阅读 1119
已编辑
brew 默认安装的MySQL版本是最新版,但是因为测试需要,得安装一个5.7版本的,brew search mysql之后,看到了mysql@5.7。
==> Formulae
automysqlbackup mysql++ mysql-client@5.7 mysql-connector-c++ mysql@5.7 ✔ mysqltuner
mysql ✔ mysql-client mysql-client@8.0 mysql-search-replace mysql@8.0 qt-mysql
于是直接安装5.7版本
brew install mysql@5.7
安装一切顺利没什么意外,于是尝试开启一下服务,但是无意外的失败了。
因为刚安装的5.7版本用的cnf配置文件和datadir和以前的8.1用的是同一个,等于5.7占用了以前8.1的配置文件和数据目录,暂且不说8.1的文件能不能用,就是这俩哥们公用一个数据目录页是不能接受的啊。
于是研究怎么在本地安装两个版本MySQL,其实说白了就是两个版本各用各的配置文件和数据目录。
配置文件
拷贝一份出来命名为my@5.7.cnf
cp /opt/homebrew/etc/my.cnf /opt/homebrew/etc/my@5.7.cnf
然后修改下配置文件
# 注释掉这一行(如果有)
#mysqlx-bind-address = 127.0.0.1
# 因为要两个MySQL共存,同时启用,所以要修改下5.7版本的端口号和socket
port = 3307
socket = /tmp/mysql.sock2
配置文件的改动就这些
数据目录
这部分因为我安装5.7的时候没有用了以前8.1的数据目录,并没有创建5.7自己的目录,所以得先初始化下这个目录
# 先把目录创建出来(也可能不用手动创建,我没试)
mkdir /opt/homebrew/var/mysql@5.7
# 初始化目录
./mysqld --defaults-file=/opt/homebrew/etc/my@5.7.cnf --initialize --user=mysql --datadir=/opt/homebrew/var/mysql@5.7 --basedir=/opt/homebrew/opt/mysql@5.7
brew service修改
因为要靠brew管理MySQL的启用和停止,所以还得修改下brew相关脚本
主要是两个文件
- /opt/homebrew/opt/mysql@5.7/homebrew.mysql@5.7.service
- /opt/homebrew/opt/mysql@5.7/homebrew.mxcl.mysql@5.7.plist
homebrew.mysql@5.7.service修改如下
[Unit]
Description=Homebrew generated unit for mysql@5.7
[Install]
WantedBy=default.target
[Service]
Type=simple
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
Restart=always
WorkingDirectory=/opt/homebrew/var/mysql@5.7
homebrew.mxcl.mysql@5.7.plist修改如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>KeepAlive</key>
<true/>
<key>Label</key>
<string>homebrew.mxcl.mysql@5.7</string>
<key>LimitLoadToSessionType</key>
<array>
<string>Aqua</string>
<string>Background</string>
<string>LoginWindow</string>
<string>StandardIO</string>
<string>System</string>
</array>
<key>ProgramArguments</key>
<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>RunAtLoad</key>
<true/>
<key>WorkingDirectory</key>
<string>/opt/homebrew/var/mysql@5.7</string>
</dict>
</plist>
到此如无意外就可以用brew分别启用两个MySQL了。
brew services start mysql
brew services start mysql@5.7
注意
如果安装第二个版本的MySQL时把原先版本的cnf文件和datadir目录污染了,可能需要下面的命令修复
修复datadir
./mysqld --defaults-file=/opt/homebrew/etc/my@5.7.cnf --initialize --user=mysql --datadir=/opt/homebrew/var/mysql@5.7 --basedir=/opt/homebrew/opt/mysql@5.7
./mysqld --defaults-file=/opt/homebrew/etc/my.cnf --initialize --user=mysql --datadir=/opt/homebrew/var/mysql --basedir=/opt/homebrew/opt/mysql
这个命令执行后会清空datadir目录,注意提前备份数据,且这个命令会重新生成密码,注意保存。
修复cnf
mysql8.1的配置文件被重置后,pdo连接MySQL可能会报下面的错误
PDO::__construct(): The server requested authentication method unknown to the client [caching_sha2_password]
修复方式
编辑my.cnf在[mysqld]
中添加下边的代码
default_authentication_plugin=mysql_native_password
参考
1人点赞>
0 条评论
排序方式
时间
投票
快来抢占一楼吧
请登录后发表评论
相关推荐
文章归档
2024-06
1 篇
2024-05
2 篇
2024-04
2 篇
2024-03
2 篇
2024-01
1 篇
展开剩余 67 条
2023-10
1 篇
2023-09
1 篇
2023-08
1 篇
2023-06
1 篇
2023-04
1 篇
2022-12
2 篇
2022-06
1 篇
2022-04
4 篇
2022-03
3 篇
2022-01
6 篇
2021-12
2 篇
2021-11
2 篇
2021-10
2 篇
2021-09
1 篇
2021-08
2 篇
2021-07
4 篇
2021-06
1 篇
2021-05
3 篇
2021-04
3 篇
2021-01
2 篇
2020-11
1 篇
2020-10
3 篇
2020-09
2 篇
2020-08
1 篇
2020-07
5 篇
2020-06
5 篇
2020-05
1 篇
2020-04
1 篇
2020-03
2 篇
2020-02
3 篇
2020-01
1 篇
2019-11
5 篇
2019-10
10 篇
2019-09
12 篇
2019-08
17 篇
2019-07
8 篇
2019-05
3 篇
2019-04
8 篇
2019-03
7 篇
2019-02
8 篇
2019-01
5 篇
2018-12
7 篇
2018-11
8 篇
2018-10
4 篇
2018-09
7 篇
2018-08
12 篇
2018-07
9 篇
2018-06
6 篇
2018-05
11 篇
2018-04
18 篇
2018-03
1 篇
2018-02
2 篇
2018-01
10 篇
2017-12
14 篇
2017-11
44 篇
2017-10
13 篇
2017-09
4 篇
2017-08
12 篇
2017-07
5 篇
2017-06
4 篇
2017-05
2 篇
2017-04
3 篇
2017-03
9 篇
2017-02
3 篇
2017-01
2 篇
2016-12
10 篇
2016-11
4 篇
最新文章
最受欢迎
06-26 11:51
05-17 17:08
05-17 10:59
04-11 17:05
04-09 17:11
13 评论
11 评论
10 评论