Ubuntu 18.04下PostgreSQL 14建库无报错失败,无法为Django项目配置数据库
PostgreSQL 14 无报错无输出无法创建数据库解决方案
问题根因
你执行建库操作时无响应无报错,是由于有其他会话持有模板库(template0/template1)的共享锁,导致建库任务被长期阻塞,从你提供的pg_locks查询结果可确认存在未释放的阻塞锁。
修复步骤
- 第一步:使用postgres超级用户登录psql终端
sudo -u postgres psql
- 第二步:查询阻塞建库的会话ID
SELECT pid, usename, datname, query FROM pg_stat_activity WHERE datname IN ('template0', 'template1') AND state != 'idle';
- 第三步:终止阻塞会话,将下方
<对应PID>替换为上一步查询到的pid值
SELECT pg_terminate_backend(<对应PID>);
- 第四步:重新执行建库命令,指定abc用户为所有者
createdb -E UTF8 --lc-collate=en_IN.UTF-8 --lc-ctype=en_IN.UTF-8 -T template0 -O abc -U postgres abc
- 第五步:验证数据库是否创建成功
psql -U postgres -c "\l"
如果列表中出现abc数据库,即可继续执行后续备份导入、Django数据库连接操作。
额外注意事项
如果后续登录abc数据库出现权限报错,需要检查PostgreSQL的pg_hba.conf配置文件,确认abc用户的访问认证规则配置正确,修改配置后执行sudo systemctl reload postgresql即可生效。
内容的提问来源于stack exchange,提问作者Singh
相关产品推荐
相关产品推荐

