Я пытаюсь удалить свою базу данных и создать новую через командную строку.
Я вхожу с помощью psql -U username
и затем делаю \connect template1
, а затем DROP DATABASE databasename;
.
Я получаю ошибку
база данных к базе данных обращаются другие пользователи
Я выключил Apache и попробовал это снова, но я все еще получаю эту ошибку. Я делаю что-то неправильно?
database
postgresql
iman453
источник
источник
dropdb databasename
команду из командной строки?psql -U <user> -c "drop database protodb"
(без имени базы данных)drop database <dataabase_name>;
Не забывайте запятую.Ответы:
Вы можете запустить команду dropdb из командной строки:
Обратите внимание, что вы должны быть суперпользователем или владельцем базы данных, чтобы иметь возможность удалить его.
Вы также можете проверить представление pg_stat_activity, чтобы увидеть, какой тип активности в настоящее время выполняется в вашей базе данных, включая все бездействующие процессы.
источник
dropuser
команду, чтобы удалить также пользователя.\l
чтобы увидеть все базы данных у вас есть.Это сработало для меня:
для postgresql ранее 9.2 заменить
pid
наprocpid
http://blog.gahooa.com/2010/11/03/how-to-force-drop-a-postgresql-database-by-killing-off-connection-processes/
источник
select pg_terminate_backend(pid) from pg_stat_activity where datname='YourDatabase';
column "procpid" does not exist
для amazon RDS postgres 9.6 экземплярПопробуй это. Обратите внимание, что база данных не указана - она просто запускается "на сервере"
Если это не сработало, я видел проблему с postgres, держась за осиротевшие готовые заявления.
Чтобы очистить их, сделайте это:
затем для каждого идентификатора, который вы видите, запустите:
источник
Когда он говорит, что пользователи подключены, что означает запрос "select * from pg_stat_activity;" сказать? Подключены ли другие пользователи, кроме вас? Если это так, вам, возможно, придется отредактировать файл pg_hba.conf, чтобы отклонить соединения от других пользователей, или закрыть любое приложение, которое обращается к базе данных pg, чтобы иметь возможность удалить его. У меня есть эта проблема при производстве. Установите в pg_hba.conf две строки, например:
и скажите pgsql перезагрузить или перезапустить (т.е. sudo /etc/init.d/postgresql reload или pg_ctl reload), и теперь единственный способ подключиться к вашей машине - через локальные сокеты. Я предполагаю, что вы на Linux. Если нет, то, возможно, его нужно настроить на что-то, отличное от local / ident в первой строке, на что-то вроде host ... yourusername.
Теперь вы должны быть в состоянии сделать:
источник