ЗАКЛЮЧИТЕЛЬНОЕ ОБНОВЛЕНИЕ:
Я забыл запустить initdb
команду.
</ FINAL UPDATE>
запустив эту команду
ps auxwww | grep postgres
Я вижу, что Postgres не работает
> ps auxwww | grep postgres
remcat 1789 0.0 0.0 2434892 480 s000 R+ 11:28PM 0:00.00 grep postgres
возникает вопрос: как запустить сервер postgresql?
Обновить:
>pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
sh: /usr/local/var/postgres/server.log: No such file or directory
обновление 2:
Касание не было успешным, поэтому я сделал это вместо:
> mkdir /usr/local/var/postgres
> vi /usr/local/var/postgres/server.log
> ls /usr/local/var/postgres/
server.log
Но когда я пытаюсь запустить сервер rails, я все еще вижу это:
Is the server running on host "localhost" and accepting
TCP/IP connections on port 5432?
обновление 3:
> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running
обновление 4:
Я обнаружил, что там не было pg_hba.conf (только pg_hba.conf.sample), поэтому я изменил образец и переименовал его (чтобы удалить .sample). Вот содержимое:
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
но я не понимаю этого
> pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
server starting
> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running
также:
sudo find / -name postgresql.conf
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
обновление 5:
sudo pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Password:
pg_ctl: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will own the server process.
обновление 6:
это кажется странным
> egrep 'listen|port' /usr/local/var/postgres/postgresql.conf
egrep: /usr/local/var/postgres/postgresql.conf: No such file or directory
хотя я сделал это:
>sudo find / -name "*postgresql.conf*"
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
/usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample
/usr/share/postgresql/postgresql.conf.sample
поэтому я сделал это:
egrep 'listen|port' /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample
#listen_addresses = 'localhost' # what IP address(es) to listen on;
#port = 5432 # (change requires restart)
# supported by the operating system:
# %r = remote host and port
поэтому я попробовал это:
> cp /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf.sample /usr/local/Cellar/postgresql/9.0.4/share/postgresql/postgresql.conf
> cp /usr/share/postgresql/postgresql.conf.sample /usr/share/postgresql/postgresql.conf
по-прежнему получает тот же "Сервер работает?" сообщение.
macos
postgresql
homebrew
Ramy
источник
источник
sudo
, т.sudo pg_ctl...
Ответы:
Менеджер пакетов Homebrew включает списки launchctl для автоматического запуска. Для получения дополнительной информации запустите
brew info postgres
.Начать вручную:
pg_ctl -D /usr/local/var/postgres start
Остановить вручную:
pg_ctl -D /usr/local/var/postgres stop
Начать автоматически:
Msgstr "Чтобы запустить, запустите postgresql сейчас и перезапустите при входе в систему:"
brew services start postgresql
Каков результат
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
?Каков результат
pg_ctl -D /usr/local/var/postgres status
?Есть ли сообщения об ошибках в server.log?
Убедитесь, что локальные соединения tcp включены в pg_hba.conf:
Проверьте listen_addresses и порт в postgresql.conf:
egrep 'listen|port' /usr/local/var/postgres/postgresql.conf
Убираться
Postgres, скорее всего, был установлен через Homebrew , Fink , MacPorts или EnterpriseDB установщик .
Проверьте вывод следующих команд, чтобы определить, с каким менеджером пакетов он был установлен:
источник
brew services start postgresql
является более актуальным и простым ответом.Если вы хотите вручную запустить и остановить postgresql (установлен через homebrew), самый простой способ:
а также
Если у вас есть конкретная версия, обязательно добавьте суффикс версии, например:
источник
brew services
раньше ... это единственное решение, которое работает для меня. <3 спасибо!brew tap gapple/services
заставит команду brew services снова работатьbrew tap homebrew/services
все еще работает github.com/Homebrew/homebrew-servicesinitdb
как был успешно запущен. В противном случае он молча выходит из строя (но , кажется, работает, с показом обслуживания , как начал вbrew services list
.brew services restart postgresql
, так как запуск базы данных с помощью pg_ctl илиbrew services start
сказал «может быть запущен другой сервер» и остановка базы данных с зависшим pg_ctl.У меня была почти та же проблема, и вы назвали команду initdb исправлением. Это было также решением для меня, но я не видел, чтобы кто-то разместил это здесь, так что для тех, кто ищет это:
источник
rm -rf /usr/local/var/postgres
и тогда это сработало для меняchown _your username on your comp_ usr/local/var/postgres
), затем initdb. После этого сервер запускается автоматически при перезапуске (если вы следовали инструкциям Homebrew для этого) или вручнуюpg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
.initdb
(включая удаление старого каталога при необходимости)brew services start postgresql
работаетrm -rf
всего, что в настоящее время находится в вашей базе данных, вас немного пугает, вместо того, чтобы полностью ее удалить, вы можете использовать что-то вродеmv /usr/local/var/postgres /usr/local/var/postgres.backup
перемещения ее в новый каталог резервных копий, а затем выполнить команду, чтобы снова запустить базу данных.Если ваш компьютер был внезапно перезагружен
Сначала вы должны удалить файл.
/usr/local/var/postgres/postmaster.pid
Затем вы можете перезапустить сервис, используя один из многих других упомянутых методов, в зависимости от вашей установки.Вы можете убедиться в этом, просмотрев журналы Postgres, чтобы увидеть, что может происходить:
tail -f /usr/local/var/postgres/server.log
источник
tail -f /usr/local/var/postgres/server.log
следует ли удалить этот файл. исх coderwall.com/p/zf-fww/...~/homebrew/var/postgres/postmaster.pid
postmaster.pid
если компьютер был внезапно перезагружен?Другой подход заключается в использовании lunchy gem (оболочки для launchctl):
Для запуска postgres:
Чтобы остановить postgres:
Для получения дополнительной информации обратитесь к: « Как установить PostgreSQL на Mac с Homebrew и Lunchy »
источник
Вот мои 2 цента: я создал псевдоним для postgres pg_ctl и поместил его в .bash_profile (моя версия postgresql - 9.2.4, а путь к базе данных - /Library/PostgreSQL/9.2/data).
Запустить новый терминал.
А потом? Вы можете запустить / остановить ваш сервер postgresql с помощью этого:
источник
Чистейший путь далеко для запуска / остановки / перезапуска Postgres , если вы установили его через
brew
это просто выгрузить и / или загрузить файл конфигурации , который поставляется запуск программ с установкой:Первая строка остановит postgres, а вторая строка запустит его. Нет необходимости указывать какие-либо каталоги данных и т. Д., Поскольку все находится в этом файле.
источник
brew services start postgres
(и остановка). Киньте-v
в конец, и вы увидите, что он делает.Чтобы запустить сервер postgresql:
завершить работу сервера postgresql:
Вы также можете создать псевдоним через CLI, чтобы упростить его:
С их помощью вы можете просто набрать «pg-start» для запуска Postgres и «pg-stop» для его выключения.
источник
pg_ctl: directory "/usr/local/var/postgres" is not a database cluster directory
как это исправить?В тестовых целях, я думаю, PostgreSQL App - лучший вариант!
Запустите приложение, и сервер будет запущен. Закройте приложение, и сервер отключится.
http://postgresapp.com/
источник
когда вы устанавливаете postgresql с помощью homebrew:
в конце вывода вы увидите следующие методы запуска сервера:
Я думаю, что это лучший способ.
Вы можете добавить псевдоним в свой .profile для удобства.
источник
Для быстрой одноразовой тестовой базы данных вы можете запустить сервер на переднем плане.
Инициализировать новую базу данных postgres в новом каталоге
Запустите сервер на переднем плане (Ctrl-C, чтобы остановить сервер)
В другом сеансе оболочки подключитесь к серверу
источник
У меня та же проблема, и я выполняю все обновления из первого поста. Но после проверки файла журнала:
Я вижу истинную причину:
После изменения разрешения на этот каталог
у сервера postgres есть старт
Каждый раз проверяйте файл журнала.
источник
PostgreSQL интегрирован в Server.app доступный через App Store в Mountain Lion. Это означает, что он уже настроен, и вам нужно только запустить его, а затем создать пользователей и базы данных.
Подсказка : не начинайте с определения $ PGDATA и т. Д., Используйте расположение файлов как есть.
У вас будет этот файл: /Library/Server/PostgreSQL/Config/org.postgresql.postgres.plist
Начать:
Процесс начался с аргументов:
/Applications/Server.app/Contents/ServerRoot/usr/bin/postgres_real -D / Библиотека / Сервер / PostgreSQL / Данные -c listen_addresses = 127.0.0.1, :: 1 -c log_connections = on -c log_directory = / Библиотека / Журналы / PostgreSQL -c log_filename = PostgreSQL.log -c log_line_prefix =% t -c log_lock_waits = on -c log_statement = ddl -c logging_collector = on -c unix_socket_directory = / private / var / pgsql_socket -c unix_socket_g_set_set_c_7_7
Вы можете sudo:
Или подключите:
Вы можете найти каталог данных, версию, текущее состояние и т. Д. С
источник
Вариация этого ответа: https://stackoverflow.com/a/13103603/2394728
источник
Для разработки одним из самых простых способов является установка Postgres.app с официального сайта . Его можно запустить / остановить из папки «Программы» или с помощью следующих команд в терминале:
источник
killall
это, вероятно, не лучший способ остановить базу данных.источник
Если вы установили с помощью brew, ниже команды должно быть достаточно.
И это иногда может не работать, в этом случае ниже две команды должны определенно работать
источник
Ни один из приведенных выше ответов не помог мне решить проблему, несмотря на то, что я получал одинаковые сообщения об ошибках Я смог восстановить и запустить свой экземпляр, удалив существующий файл postmaster.pid, который был заблокирован и не разрешал подключения.
источник
Для macports просто используйте команду load / unload и имя порта работающего сервера:
так что вам не нужно помнить, где находится
/Library/LaunchDaemons/org.macports.postgresql96.plist
файлисточник
https://hub.docker.com/_/postgres
источник
Если вы установили Postgres с помощью установщика EnterpriseDB, то, что предложил @Kenial, это путь.
источник
у меня это сработало (macOS 10.13)
sudo -u postgres /Library/PostgreSQL/9.6/bin/pg_ctl start -D /Library/PostgreSQL/9.6/data
или первый
cd /Library/PostgreSQL/9.6/bin/
источник
$ brew upgrade postgres
исправил это для меня.
Это, конечно, обновит вашу версию postgres и обновит / установит все зависимости.
источник
Для Mac / OSX мне очень нравится LaunchRocket для этого и других фоновых сервисов, которые я использовал в разработке.
https://github.com/jimbojsb/launchrocket
На этом сайте есть хорошие инструкции по установке: http://macappstore.org/launchrocket/
Это дает вам хороший экран в системных настройках, который позволяет запускать, перезагружать, рутировать, запускать при входе в систему.
источник
Это работало для меня каждый раз, вдохновленный Крейгом Рингером:
proctools включает в себя pkill. Если у вас нет Brew: https://brew.sh/
источник
Для полноты: проверьте, находитесь ли вы внутри экземпляра
Tmux
илиScreen
экземпляра, запуск не будет работать оттуда.От: /superuser/879640/error- while-try-to-start-postgres-installed-via-homebrew-operation-not-permi/898585
Это решило это для меня.
источник
Есть некоторые крайние случаи, которые, возможно, будут полезны для кого-то:
Существует вариант, что у вас будет postgres.pid, заполненный некоторым PID. Но если вы перезагрузите ваш компьютер, и до того, как postgress вернется снова, какой-то другой процесс примет этот PID. Если это произойдет, и pg_ctl status, и служба brew, спросив о статусе postgres, сообщат вам, что это UP. Просто PS AUX | grep и проверь, действительно ли это postgress
источник
Доморощенный это путь!
Чтобы запустить сервис:
Чтобы перечислить это:
остановить сервис.
источник
Если вы не устанавливали его с помощью brew и непосредственно из пакета mac, у меня это сработало для PostgreSQL 12 при использовании всех местоположений по умолчанию, переменных и т. Д.
источник
Я столкнулся с той же проблемой. Перепробовал все эти решения, но ни одно из них не сработало.
Наконец-то удалось заставить его работать, изменив postgres HOST в настройках Django с
localhost
на127.0.0.1
.Ура, если это поможет.
источник