You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSL下Ubuntu 20安装Postgres后创建数据库永久卡住是什么原因?

可能故障成因

  • WSL跨文件系统兼容性问题:如果你的Postgres数据目录存放于/mnt/开头的Windows挂载分区(drvfs文件系统),该文件系统对Linux原生的文件锁、fsync同步机制支持不完善,会导致创建数据库时IO操作永久卡住。需将数据目录迁移到WSL原生ext4路径(默认路径为/var/lib/postgresql/<版本号>/main)即可解决。
  • Locale配置缺失:创建数据库时需要调用系统对应字符集的locale配置,若WSL环境中未生成对应locale(可执行locale -a查询现有配置),会导致初始化过程卡住。可先执行sudo locale-gen en_US.UTF-8 zh_CN.UTF-8生成所需locale,再重新尝试创建数据库。
  • WSL内核参数不匹配:WSL默认的内核共享内存配置(shmmax、shmall)通常远低于物理机Linux的默认值,若配置过小会导致Postgres创建数据库时分配共享内存失败卡住。可执行sysctl kernel.shmmax sysctl kernel.shmall检查配置,适当调大对应数值即可。
  • 模板数据库损坏:Postgres创建新数据库默认克隆template1模板库,若安装时初始化数据库集群(initdb)过程受WSL环境影响未完成,导致模板库损坏,也会出现创建新库无响应的情况。可备份现有数据后删除原有数据目录,重新执行initdb初始化集群即可恢复。
  • WSL版本兼容性问题:WSL1对Linux进程管理、IO操作的兼容性存在大量缺陷,若你当前使用WSL1运行Postgres,升级到WSL2即可解决该类兼容性故障。
  • Windows安全软件拦截:Windows Defender等杀毒软件的实时扫描功能会拦截扫描WSL内的文件IO操作,若扫描Postgres的数据文件会导致IO阻塞卡住。可将WSL数据目录或Postgres的数据目录加入杀毒软件的排除列表验证。

内容的提问来源于stack exchange,提问作者Leo Jiang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 14:54:02