我登录到源数据库 template1,但现在无法创建数据库。 当我尝试创建数据库时,出现此错误:
OperationalError: source database "template1" is being accessed by other users
DETAIL: There are 5 other session(s) using the database.
每次我登录到 template1 时,我都使用“exit”命令注销,但正如您所见,它并没有注销,每次登录时 session 数都会增加。有没有办法强制断开与现在登录的 template1 的所有连接?
最佳答案
数据库template1
存在只是为了提供准系统结构来创建另一个空数据库。您应该永远不要登录到 template1
,否则您会遇到问题。
对您来说最简单的解决方案可能是重新启动 PostgreSQL 服务器进程,然后重新登录。应该始终存在并且可以安全登录的数据库是 postgres
。
如果无法重启,您可以使用另一个紧急模板数据库:template0
。
默认情况下,这条语句:
CREATE DATABASE dbname;
相当于:
CREATE DATABASE dbname TEMPLATE template1;
如果 template1
不可用或已损坏,您可以使用 template0
作为最后的手段:
CREATE DATABASE dbname TEMPLATE template0;
您可以阅读有关模板数据库的更多信息 here .
关于postgresql - 无法创建数据库 - OperationalError : source database "template1" is being accessed by other users,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14374726/