当前位置: 首页 > article >正文

在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 '你的新密码';


http://www.kler.cn/a/530110.html

相关文章:

  • 【python】python油田数据分析与可视化(源码+数据集)【独一无二】
  • 96,【4】 buuctf web [BJDCTF2020]EzPHP
  • 探索 Copilot:开启智能助手新时代
  • 基于微信小程序的实习记录系统设计与实现(LW+源码+讲解)
  • 笔灵ai写作技术浅析(三):深度学习
  • 2 MapReduce
  • Python 原子操作:使用 `atomic` 模块保证线程安全
  • web前端12--表单和表格
  • 科技快讯 | 领英“隐私风波”告一段落;华为余承东智驾 1345 公里返工,称智界 R7 打赢“鸡蛋保卫战”;谷歌翻译将增“提问”功能
  • 利用Spring Batch简化企业级批处理应用开发
  • 【漫话机器学习系列】075.隐含层(Hidden Layer)
  • Git如何避免推送.idea文件夹
  • 使用 vllm 搭建推理加速大模型服务
  • OpenAI 实战进阶教程 - 第二节:生成与解析结构化数据:从文本到表格
  • 想品客老师的第天:类
  • Java集合+并发(部分)
  • MultiResUNet学习笔记(2019 Neural Networks【SCI 1区】)
  • 用结构加法3ax+1预测第4点的分布
  • 掌握Spring MVC异常处理的艺术
  • ICLR 2025收录论文:为什么动作分块对于机器人灵活性至关重要?
  • makailio-alias_db模块详解
  • 蓝桥杯备考:六大排序算法
  • Hive重点面试题
  • #define,源文件与头文件,赋值表达式
  • Java项目: 基于SpringBoot+mybatis+maven+mysql实现的疾病防控综合管理系统(含源码+数据库+毕业论文)
  • springboot中路径默认配置与重定向/转发所存在的域对象