WSL(Ubuntu22.04)下创建PostgreSQL数据库陷入无限等待
解决WSL Ubuntu 22.04中PostgreSQL创建数据库无限等待问题
以下是针对你遇到的createdb或psql中CREATE DATABASE命令无限等待问题的排查和解决步骤:
1. 检查PostgreSQL服务状态
WSL中PostgreSQL服务默认可能未自动启动,先确认服务运行状态:
sudo systemctl status postgresql
如果服务未运行,启动服务并设置开机自启:
sudo systemctl start postgresql sudo systemctl enable postgresql
2. 验证数据目录权限
PostgreSQL数据目录权限异常会导致操作卡住,检查默认数据目录(Ubuntu 22.04对应PostgreSQL 14)的权限:
ls -ld /var/lib/postgresql/14/main
输出应为drwx------ 19 postgres postgres开头,如果权限不符,修复权限:
sudo chown -R postgres:postgres /var/lib/postgresql/14/main sudo chmod 700 /var/lib/postgresql/14/main
3. 检查Unix Socket权限
本地连接依赖Unix Socket,目录权限不足会导致连接超时:
ls -ld /var/run/postgresql/
输出权限应包含rwxrwxr-x(允许其他用户访问),如果权限过严,修改:
sudo chmod 775 /var/run/postgresql/
也可以直接指定socket路径执行创建命令:
createdb -h /var/run/postgresql user
4. 查看PostgreSQL日志定位具体问题
如果以上步骤无效,查看日志获取错误详情:
sudo tail -n 50 /var/log/postgresql/postgresql-14-main.log
日志中会明确显示卡住的原因(如磁盘空间不足、配置错误等),根据日志信息进一步处理。
内容的提问来源于stack exchange,提问作者user13099610
相关产品推荐
相关产品推荐

