Estoy tratando de soltar mi base de datos y crear una nueva a través de la línea de comando.
Me conecto usando psql -U username
y luego hago un \connect template1
, seguido de a DROP DATABASE databasename;
.
Me sale el error
otros usuarios acceden a la base de datos de base de datos
Apagué Apache e intenté esto nuevamente, pero aún recibo este error. ¿Estoy haciendo algo mal?
database
postgresql
iman453
fuente
fuente
dropdb databasename
comando desde la línea de comando?psql -U <user> -c "drop database protodb"
(sin nombre de base de datos)drop database <dataabase_name>;
No olvides la coma.Respuestas:
Puede ejecutar el comando dropdb desde la línea de comando:
Tenga en cuenta que debe ser un superusuario o el propietario de la base de datos para poder eliminarlo.
También puede verificar la vista pg_stat_activity para ver qué tipo de actividad se está llevando a cabo actualmente en su base de datos, incluidos todos los procesos inactivos.
fuente
dropuser
comando para eliminar también al usuario.\l
para ver todas las bases de datos que tienes.Esto funcionó para mí:
para postgresql anterior a 9.2 reemplace
pid
conprocpid
http://blog.gahooa.com/2010/11/03/how-to-force-drop-a-postgresql-database-by-killing-off-connection-processes/
fuente
select pg_terminate_backend(pid) from pg_stat_activity where datname='YourDatabase';
column "procpid" does not exist
para la instancia de Amazon RDS postgres 9.6Prueba esto. Tenga en cuenta que no hay una base de datos especificada, simplemente se ejecuta "en el servidor"
Si eso no funciona, he visto un problema con postgres reteniendo declaraciones preparadas huérfanas.
Para limpiarlos, haga esto:
entonces para cada identificación que vea, ejecute esto:
fuente
Cuando dice que los usuarios están conectados, ¿qué hace la consulta "select * from pg_stat_activity;" ¿decir? ¿Están ahora conectados los demás usuarios además de usted? Si es así, es posible que deba editar su archivo pg_hba.conf para rechazar las conexiones de otros usuarios, o cerrar cualquier aplicación que esté accediendo a la base de datos pg para poder soltarla. Tengo este problema en ocasiones en producción. Establezca pg_hba.conf para tener dos líneas como esta:
y decirle a pgsql que vuelva a cargar o reiniciar (es decir, sudo /etc/init.d/postgresql reload o pg_ctl reload) y ahora la única forma de conectarse a su máquina es a través de enchufes locales. Supongo que estás en Linux. Si no es así, es posible que deba ajustarse a algo que no sea local / ident en esa primera línea, a algo como host ... su nombre de usuario.
Ahora deberías poder hacer:
fuente