postgresql - 无法创建数据库 - OperationalError : source database "template1" is being accessed by other users

标签 postgresql postgresql-8.4

我登录到源数据库 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/

相关文章:

Hibernate 无法在 Heroku postgres 上自动创建模式

postgresql - JPA中postgreSQL的DECIMAL对应的Java数据类型是什么?

sql - 如果结果为空,PostgreSQL 不过滤

postgresql - 仅选择今天(从午夜开始)的时间戳

sql - 如何在循环内的postgres中初始化数组

每行的 PostgreSQL 函数

Java-to-sql语句,Insert into vs setString中的变量

postgresql - Postgres : unnesting an array and counting totals

单个 WHERE 条件中的 SQL 多列

postgresql - 将行插入临时表