Postgresql个人维护库时,出现有用户在连接又找不到这个用户是谁的强制中断连接的方法;

方法一:

去PostgreSQL目录下/data/pgdata/9.4,找到pg_hba.conf, 修改pg_hba.conf的白名单IP (修改前,最好服务已停止,我是这么操作的)

# IPv4 local connections:
#host    all      all        127.0.0.1/32         md5
host    all      all      192.168.100.166/32     trust

第三行表示,只允许一个IP 192.169.100.166连接;

然后,重启PostgreSQL服务(pg_ctl start),重启后,便可以使用192.169.100.166 IP 删除库了,可以正常操作了。

方法二:(个人还未实践,不确定对于那种自动化程序,会重复请求连接的情况下会怎样)

1.查询数据库的所有连接

1 SELECT * FROM pg_stat_activity;

2.查看结果中是否有 procpid 或 pid字段 版本不同造成;

3. 利用函数断开连接

1 pg_terminate_backend(procpid/pid)

SELECT pg_terminate_backend(pg_stat_activity.procpid) 

 FROM pg_stat_activity 

 WHERE datname='dbname' AND procpid<>pg_backend_pid();

猜你喜欢

转载自www.cnblogs.com/ylq1990/p/10276914.html