在Arm芯片苹果Mac系统上通过homebrew安装多版本mysql并解决各种报错,感谢deepseek帮助解决部分问题

背景:

1.苹果设备上安装mysql,随着苹果芯片的推出,很多地方都变得不一样了。

2.很多时候为了老项目能运行,我们需要能安装mysql5.7或者mysql8.0或者mysql8.2.虽然本文编写时最新的默认mysql已经是9.2版本。

安装步骤

1.执行homebrew命令(对homebrew不熟悉的可以搜索一下相关文章,本文不赘述。

brew install mysql
brew install mysql@8.4
brew install mysql@5.7

2.关闭已有服务(本文以8.4为例子)

brew services stop mysql
brew services stop mysql@8.4
brew services stop mysql@5.7

此时如果再运行命令 brew services list

会看见所有mysql的服务都是关闭的

3.复制配置

注意默认情况下,3个数据库使用了同一个配置文件,并且是同一份data目录,这显然不对。
我们先复制/opt/homebrew/etc/my.cnf 文件为 /opt/homebrew/etc/my84.cnf。
然后调整其内容为(注意最好每个配置的port要不同,否则服务无法同时开启)

# Default Homebrew MySQL server config
[mysqld]

port=3306

# 数据目录
datadir=/opt/homebrew/var/mysql84
socket=/opt/homebrew/var/mysql84/mysql.sock

# 错误日志
log_error=/opt/homebrew/var/mysql84/error.log

# 默认字符集
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

# Only allow connections from localhost
bind-address = 127.0.0.1
mysqlx-bind-address = 127.0.0.1

# SQL模式
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO

4.拆分数据保存目标文件夹

创建目标数据文件夹(感谢deepseek,这才知道用户名是_mysql)

sudo mkdir -p /opt/homebrew/var/mysql84
sudo chown -R _mysql:admin /opt/homebrew/var/mysql84  # macOS 默认 MySQL 用户为 _mysql
sudo chmod 755 /opt/homebrew/var/mysql84

5.重新初始化

/opt/homebrew/opt/mysql@8.4/bin/mysqld --defaults-file=/opt/homebrew/etc/my84.cnf --initialize --user=_mysql --basedir=/opt/homebrew/opt/mysql@8.4 --datadir=/opt/homebrew/var/mysql84

6.临时密码位于
/opt/homebrew/var/mysql84/error.log
A temporary password is generated for root@localhost:


7.修改文件
/opt/homebrew/Cellar/mysql@8.4/8.4.4/homebrew.mxcl.mysql@8.4.plist
其中的各种路径/opt/homebrew/var/mysql 末尾改为mysql84


8.启动mysql
brew services start mysql@8.4
注意第7步改对了,这块才能顺利启动,否则看着似乎启动成功了,实际上会马上终止

9.终于成功启动,此时可以登录了
mysql -u root -p

10.修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值