Mac M1执行terraform init报错:mysql v1.9.0无darwin_arm64适配包
解决Terraform MySQL Provider在Mac M1上的兼容问题
方法1:切换到官方维护的MySQL Provider
原terraform-providers/mysql已停止维护,且无darwin_arm64适配版本,目前官方推荐使用hashicorp/mysql(3.0.0及以上版本支持Mac M1架构)。
修改Terraform配置文件(如main.tf)中的provider声明:
terraform { required_providers { mysql = { source = "hashicorp/mysql" version = ">= 3.0.0" } } } provider "mysql" { # 你的MySQL连接配置 endpoint = "localhost:3306" username = "your_username" password = "your_password" }
执行命令更新并初始化:
terraform init -upgrade
方法2:通过Rosetta 2模拟x86_64环境运行(临时方案)
- 安装Rosetta 2:
softwareupdate --install-rosetta
- 创建Rosetta终端:右键终端应用→复制→重命名为“Terminal (Rosetta)”→右键选择「显示简介」→勾选「使用Rosetta打开」
- 在该终端内执行
terraform init,Terraform会拉取x86_64版本的provider。
方法3:手动编译旧版本Provider(进阶方案)
若必须使用terraform-providers/mysql v1.9.0,可手动编译适配darwin_arm64的版本:
- 克隆项目仓库并切换到对应版本:
git clone https://github.com/terraform-providers/terraform-provider-mysql.git cd terraform-provider-mysql git checkout v1.9.0
- 编译arm64架构的二进制文件:
GOOS=darwin GOARCH=arm64 go build -o terraform-provider-mysql_v1.9.0
- 将编译产物放入Terraform本地插件目录(路径示例):
mkdir -p ~/.terraform.d/plugins/registry.terraform.io/terraform-providers/mysql/1.9.0/darwin_arm64/ mv terraform-provider-mysql_v1.9.0 ~/.terraform.d/plugins/registry.terraform.io/terraform-providers/mysql/1.9.0/darwin_arm64/
- 重新执行
terraform init
内容的提问来源于stack exchange,提问作者Catopus
相关产品推荐
相关产品推荐

