Win11专业版下PostgreSQL无法删除数据库问题求助
PostgreSQL删除数据库失败的排查方案
数据库存在活跃连接
PostgreSQL不允许删除正在被使用的数据库,这是最常见的失败原因。你可以先执行SELECT pid FROM pg_stat_activity WHERE datname = 'Backingratcks';查看是否有活跃进程,再用SELECT pg_terminate_backend(pid);终止这些连接,之后重新执行删除命令。当前登录用户权限不足
即便用管理员身份启动CMD,psql登录的用户可能没有删除数据库的权限。默认只有超级用户(比如postgres)拥有DROP DATABASE权限,你可以执行SELECT current_user;查看当前登录用户,若不是超级用户,切换到postgres用户登录后再操作。数据库名称大小写匹配问题
Windows系统本身大小写不敏感,但PostgreSQL默认会把未加引号的标识符转为小写。如果你的数据库是通过带引号的方式创建的(比如CREATE DATABASE "TEST";),直接执行DROP DATABASE TEST;会找不到目标库,需要改成DROP DATABASE "TEST";。查看PostgreSQL日志获取详细错误信息
若psql未返回明确错误,可前往PostgreSQL数据目录下的pg_log文件夹查找日志文件,里面会记录所有操作的详细报错内容,帮你精准定位问题。默认路径一般为C:\Program Files\PostgreSQL\<版本号>\data\pg_log。
内容的提问来源于stack exchange,提问作者Tormy Van Cool
相关产品推荐
相关产品推荐

