PostgreSql 删除数据库需要用到的操作记录
记录一下平时数据库的操作,以备不时之需
日常操作- 创建数据库&用户
为了验证某些测试环境无法出现的bug, 于是从生产环境dump下来了数据库。 现在我需要
- 创建一个数据库用户,这个用户可以一直用 : create user XXX with password ‘XXXXXX’;
- 新建一个数据库并将owner指定为我们对应的用户 : create database xxx with owner = xxxuser;
- 赋予用户权限对应数据库权限: grant all on database xxxdatabase to xxxuser;
- 切换到对应数据库对应用户, 执行我们的数据库sql脚本: \c xxxdatabase xxxuser; \i /home/xx/xx.sql
特殊操作 - 删除数据库
- 阻止新增连接 REVOKE CONNECT ON DATABASE your_database_name FROM public;
- 查询所有连接到本数据库的连接 : select datname,pid,application_name,state from pg_stat_activity;
- 终止所有连接到本数据库的连接 : SELECT pid, pg_terminate_backend({pid}) FROM pg_stat_activity WHERE datname = current_database() AND {pid} <> pg_backend_pid();
- 删除对应数据库: drop database xxxxxx;