Mac OS Ventura M1中Embedded Postgres无法运行问题求助
在Mac OS Ventura M1上解决Embedded Postgres段错误及初始化失败问题
问题重现
在Mac OS Ventura M1环境下使用Embedded Postgres时出现以下问题:
- 执行初始化命令失败:
Process [/var/folders/vs/pfsp79pn1rgcc038_4yvsfk00000gn/T/embedded-pg/PG-578c3302bce806451b07e3a73d8438d1/bin/initdb, -A, trust, -U, postgres, -D, /var/folders/vs/pfsp79pn1rgcc038_4yvsfk00000gn/T/epg16251203664783330327, -E, UTF-8] failed - 直接在控制台启动postgres时触发段错误:
/var/folders/vs/pfsp79pn1rgcc038_4yvsfk00000gn/T/embedded-pg/PG-578c3302bce806451b07e3a73d8438d1/bin/postgres ; exit; zsh: segmentation fault
可行解决方案
- 确认架构兼容性:M1为arm64架构,部分旧版Embedded Postgres仅支持x86_64。若用的是依赖库(比如Java的
embedded-postgres),升级到支持arm64的最新版本,或明确指定arm64平台的分发包。 - 关闭终端Rosetta模式:若终端通过Rosetta打开,会强制以x86_64兼容模式运行,易引发兼容性问题。打开终端「显示简介」,取消勾选「使用Rosetta打开」,重启终端后重试。
- 清理临时目录残留:删除报错路径下的
embedded-pg相关临时文件夹(/var/folders/vs/pfsp79pn1rgcc038_4yvsfk00000gn/T/embedded-pg/),避免损坏缓存干扰初始化,之后重新执行命令。 - 调整权限:确保当前用户对临时目录拥有完整读写权限,必要时可尝试用
sudo执行初始化命令(仅测试用,生产环境谨慎操作)。 - 切换Postgres版本:旧版Postgres(如12及更早)对M1 Ventura支持不完善,尝试切换到14或15版本的Embedded Postgres,这类版本对arm64兼容性更好。
内容的提问来源于stack exchange,提问作者Сергей Кипяток
相关产品推荐
相关产品推荐

