Как я могу убить все мои соединения postgresql?
Я пытаюсь, rake db:drop
но я получаю:
ERROR: database "database_name" is being accessed by other users
DETAIL: There are 1 other session(s) using the database.
Я пытался завершить процессы, которые я вижу, ps -ef | grep postgres
но это тоже не работает:
kill: kill 2358 failed: operation not permitted
database
postgresql
Dans
источник
источник
Ответы:
Вы можете использовать pg_terminate_backend (), чтобы убить соединение. Вы должны быть суперпользователем, чтобы использовать эту функцию. Это работает на всех операционных системах одинаково.
Перед выполнением этого запроса вы должны отозвать привилегии CONNECT, чтобы избежать новых подключений:
источник
sudo
убить?sudo
в пг.REVOKE
шаг. Вы спасли кого-то, я думаю, еще раз!Может быть, просто перезагрузить
postgres
=>sudo service postgresql restart
источник
brew services restart postgresql
если у вас есть варевоСо всей информацией о запущенном процессе:
источник
MacOS, если postgresql был установлен вместе с brew :
Источник: убить сеанс / соединение postgresql
источник
OSX, Postgres 9.2 (устанавливается вместе с homebrew)
Если ваш датадир находится в другом месте, вы можете узнать, где он находится, изучив вывод
ps aux | grep postgres
источник
brew services restart postgresql
pg_ctl restart -D /usr/local/var/postgres
сделал свое дело! (Я даже не запускал первую или третью команду).Кажется, это работает для PostgreSQL 9.1:
Снято с гистов, найденных здесь и здесь .
Вот модифицированная версия, которая работает как для PostgreSQL 9.1, так и для 9.2.
источник
Я использую следующую задачу rake, чтобы переопределить
drop_database
метод Rails .lib/database.rake
Редактировать: это для Postgresql 9.2+
источник
pg_stat_activity.procpid
вместоpg_stat_activity.pid
Postgres 9.1 и ниже. См stackoverflow.com/a/5408501/444774Более простой и обновленный способ это:
ps -ef | grep postgres
чтобы найти соединениеsudo kill -9 "#"
связиПримечание: может быть идентичный PID. Убийство одного убивает всех.
источник
У меня была эта проблема, и проблема была в том, что Navicat был подключен к моей локальной базе данных Postgres. Как только я отключил Navicat, проблема исчезла.
РЕДАКТИРОВАТЬ:
Кроме того, в качестве абсолютного последнего средства вы можете создать резервную копию своих данных, а затем выполнить эту команду:
... который убьет все, к чему имеет доступ пользователь postgres. Избегайте этого на производственной машине, но у вас не должно быть проблем со средой разработки. Очень важно убедиться, что каждый
postgres
процесс действительно завершен, прежде чем пытаться перезапустить PostgreSQL после этого.РЕДАКТИРОВАТЬ 2:
Из-за этого поста unix.SE я изменил с
kill -9
наkill -15
.источник
Я решил это
В моей Windows 8 64- битной
restart
версии только сервис: postgresql-x64-9.5источник
источник
Просто хотел отметить, что Ответ Хариса может не работать, если какой-то другой фоновый процесс использует базу данных, в моем случае это были отложенные задания, я сделал:
И только тогда мне удалось сбросить / сбросить базу данных.
источник
Закройте postgres и перезапустите его. Просто, но каждый раз работает для меня, где другие команды cli иногда не работают.
источник
Там нет необходимости бросать его. Просто удалите и заново создайте общедоступную схему. В большинстве случаев это имеет точно такой же эффект.
источник
Удаленный сценарий. Но если вы пытаетесь запустить тесты в приложении rails, и вы получаете что-то вроде
«ActiveRecord :: StatementInvalid: PG :: ObjectInUse: ОШИБКА: база данных« myapp_test »используется другими пользователями. ПОДРОБНЕЕ: Есть еще 1 сеанс, использующий базу данных».
Убедитесь, что вы закрыли pgAdmin или любые другие инструменты GUI postgres перед запуском тестов.
источник
Случай:
не удалось выполнить запрос:
Решение:
а. Отобразить запрос Status Activity следующим образом:
б. Найти строку, в которой столбец «Запрос» содержит:
с. В той же строке получить значение столбца 'PID'
д. Выполните эти сценарии:
источник
Я на Mac, и я использую Postgres через
Postgres.app
. Я решил эту проблему, просто выйдя и снова запустив приложение.источник
Откройте PGadmin, посмотрите, открыта ли какая-либо страница запросов, закройте все страницы запросов, отключите сервер PostgresSQL, снова подключите его и попробуйте удалить / удалить. Это помогло мне.
источник
В PG admin вы можете отключить ваш сервер (щелкнуть правой кнопкой мыши на сервере) и все сессии будут отключены при перезапуске
источник
У меня сработало следующее:
Я использую:
gitlab_edition: "gitlab-ce"
gitlab_version: '12 .4.0-ce.0.el7 '
источник
Сначала найдите Postgres, какой порт работает
ps -ef | grep postgres
его вернет номер порта
убить -9
port_number
Наконец снова запустить Postgres
источник