Ik was vergeten de opdracht initdb
uit te voeren.
Door deze opdracht uit te voeren
ps auxwww | grep postgres
Ik zie dat postgres
niet actief is
> ps auxwww | grep postgres
remcat 1789 0.0 0.0 2434892 480 s000 R+ 11:28PM 0:00.00 grep postgres
Dit roept de vraag op:
Hoe start ik de PostgreSQL-server?
Bijwerken:
> 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
Update 2:
De aanrakingwas niet succesvol, dus ik deed dit in plaats daarvan:
> mkdir /usr/local/var/postgres
> vi /usr/local/var/postgres/server.log
> ls /usr/local/var/postgres/
server.log
Maar als ik de Ruby on Rails-server probeer te starten, zie ik nog steeds dit:
Loopt de server op host “localhost” en accepteert
TCP/IP-verbindingen op poort 5432?
Update 3:
> pg_ctl -D /usr/local/var/postgres status
pg_ctl: no server running
Update 4:
Ik ontdekte dat er geenpg_hba.confbestand was (alleen bestand pg_hba.conf.sample), dus ik heb het voorbeeld aangepast en hernoemd (om het .sample te verwijderen). Dit is de inhoud:
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
Maar ik begrijp dit niet:
> 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
Ook:
sudo find / -name postgresql.conf
find: /dev/fd/3: Not a directory
find: /dev/fd/4: Not a directory
Update 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.
Update 6:
Dit lijkt vreemd:
> egrep 'listen|port' /usr/local/var/postgres/postgresql.conf
egrep: /usr/local/var/postgres/postgresql.conf: No such file or directory
Hoewel ik dit wel heb gedaan:
>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
Dus ik deed dit:
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
Dus ik probeerde dit:
> 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
Ik krijg nog steeds dezelfde melding “Is de server actief?” bericht.
Antwoord 1, autoriteit 100%
De pakketbeheerder Homebrewbevat launchctl-lijsten om automatisch te starten. Voer brew info postgres
uit voor meer informatie.
Handmatig starten
pg_ctl -D /usr/local/var/postgres start
Handmatig stoppen
pg_ctl -D /usr/local/var/postgres stop
Automatisch starten
“Om te starten postgresql nu te starten en opnieuw te starten bij inloggen:”
brew services start postgresql
Wat is het resultaat van pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
?
Wat is het resultaat van pg_ctl -D /usr/local/var/postgres status
?
Zijn er foutmeldingen in de server.log?
Zorg ervoor dat tcp localhost-verbindingen zijn ingeschakeld in pg_hba.conf:
# IPv4 local connections:
host all all 127.0.0.1/32 trust
Controleer de listen_addresses en port in postgresql.conf:
egrep 'listen|port' /usr/local/var/postgres/postgresql.conf
#listen_addresses = 'localhost' # What IP address(es) to listen on;
#port = 5432 # (change requires restart)
Opruimen
PostgreSQL is hoogstwaarschijnlijk geïnstalleerd via Homebrew, Fink, MacPortsof de EnterpriseDBinstallatieprogramma.
Controleer de uitvoer van de volgende opdrachten om te bepalen met welke pakketbeheerder het is geïnstalleerd:
brew && brew list|grep postgres
fink && fink list|grep postgres
port && port installed|grep postgres
Antwoord 2, autoriteit 21%
Als je PostgreSQL handmatig wilt starten en stoppen (geïnstalleerd via Homebrew), de gemakkelijkste manier is:
brew services start postgresql
en
brew services stop postgresql
Als je een specifieke versie hebt, zorg er dan voor dat je de versie achtervoegt. Bijvoorbeeld:
brew services start postgresql@10
Antwoord 3, autoriteit 9%
Ik had bijna exact hetzelfde probleem en u noemde het initdb-commando als de oplossing. Dit was voor mij ook de oplossing, maar ik zag niet dat iemand het hier gepost had, dus voor wie het zoekt:
initdb /usr/local/var/postgres -E utf8
4, Autoriteit 6%
Als uw computer abrupt opnieuw is opgestart
Mogelijk wilt u PG-server starten, maar het was niet.
Ten eerste moet u het bestand verwijderen /usr/local/var/postgres/postmaster.pid
DAN U kunt de service opnieuw opstarten met behulp van een van de vele andere genoemde methoden, afhankelijk van uw installatie.
U kunt dit verifiëren door naar de logboeken van PostGres te kijken om te zien wat er mogelijk aan de gang is: tail -f /usr/local/var/postgres/server.log
Voor specifieke versie: –
tail -f /usr/local/var/postgres@[VERSION_NUM]/server.log
Eg:
tail -f /usr/local/var/postgres@11/server.log
5, Autoriteit 4%
Een andere aanpak gebruikt de lunchy edelstenen (een wrapper voor launchctl):
brew install postgresql
initdb /usr/local/var/postgres -E utf8
gem install lunchy
Start PostGresql:
lunchy start postgres
Om PostGresql te stoppen:
lunchy stop postgres
Zie voor meer informatie: “Hoe PostGresql op een Mac met homebrew en lunch te installeren ”
6, Autoriteit 2%
De schoonste manier veruit om PostGRESQL te starten / stoppen / opnieuw opstarten als u deze hebt geïnstalleerd via brew
is om eenvoudigweg de LaunchD configuratiebestand met de installatie:
launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
De eerste regel stopt postgresql en de tweede regel zal het starten. Er is geen behoefte aan gegevensdirectories, enz. Omdat alles in dat bestand is.
7
Om de PostgreSQL-server te starten:
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
Om de PostgreSQL-server te beëindigen:
pg_ctl -D /usr/local/var/postgres stop -s -m fast
U kunt ook een alias maken via CLI om het gemakkelijker te maken:
alias pg-start='pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start'
alias pg-stop='pg_ctl -D /usr/local/var/postgres stop -s -m fast'
Met deze kunt u gewoon “PG-start” typen om PostgreSQL en “PG-STOP” te starten om deze af te sluiten.
8
Voor testdoeleinden denk ik dat Postgresql-app de beste optie is!
Voer een app uit en de server is actief.
Sluit de app en de server daalt.
9
Wanneer u PostgreSQL installeert met homebrew ,
brew install postgres
Aan het einde van de uitvoer ziet u deze methoden om de server te starten:
To have launchd start postgresql at login:
ln -sfv /usr/local/opt/postgresql/*.plist ~/Library/LaunchAgents
Then to load postgresql now:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
Or, if you don't want/need launchctl, you can just run:
postgres -D /usr/local/var/postgres
Ik denk dat dit de beste manier is.
U kunt een alias toevoegen aan uw .Profile -bestand voor het gemak.
10
Als u met Homebrew hebt geïnstalleerd, moet de onderstaande opdracht voldoende zijn.
brew services restart postgresql
Dit werkt soms niet. In dat geval moeten de onderstaande twee opdrachten beslist werken:
rm /usr/local/var/postgres/postmaster.pid
pg_ctl -D /usr/local/var/postgres start
Antwoord 11
Ik had hetzelfde probleem en heb alle updates vanaf de eerste post uitgevoerd. Maar na controle van het logbestand,
/usr/local/var/postgres/server.log
Ik zie de ware oorzaak:
FATAL: data directory "/usr/local/var/postgres" has group or world access
DETAIL: Permissions should be u=rwx (0700).
Na het wijzigen van de rechten voor deze map,
chmod 0700 /usr/local/var/postgres
de PostgreSQL-server is gestart.
Controleer het logbestand elke keer.
Antwoord 12
Voor een snelle testdatabase voor eenmalig gebruik kunt u de server op de voorgrond gebruiken.
Initialiseer een nieuwe PostgreSQL-database in een nieuwe map:
mkdir db
initdb db -E utf8
createdb public
Start de server op de voorgrond (Ctrl+ Com de server te stoppen):
postgres -d db
Verbind in een andere shell-sessie met de server
psql -d public
Antwoord 13
Variatie op dit antwoord: https://stackoverflow.com/a/13103603/2394728
initdb `brew --prefix`/var/postgres/data -E utf8`` && pg_ctl -D /usr/local/var/postgres/data -l logfile start
Antwoord 14
PostgreSQL is geïntegreerd in Server.appbeschikbaar via de App Storein Mac OS X v10.8(Mountain Lion ). Dat betekent dat het al is geconfigureerd en dat u het alleen hoeft te starten en vervolgens gebruikers en databases aan te maken.
Tip: Begin niet met het definiëren van $PGDATA enzovoort. Neem bestandslocaties zoals ze zijn.
Je zou dit bestand hebben:
/Bibliotheek/Server/PostgreSQL/Config/org.postgresql.postgres.plist
Om te beginnen:
sudo serveradmin start postgres
Proces gestart met argumenten:
/Applications/Server.app/Contents/ServerRoot/usr/bin/postgres_real -D /Library/Server/PostgreSQL/Data -c listen_addresses=127.0.0.1,::1 -c log_connections=on -c log_directory=/ Bibliotheek/Logs/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_group unix_socket_permissions=0770
U kunt sudo:
sudo -u _postgres psql template1
Of maak verbinding:
psql -h localhost -U _postgres postgres
U kunt de gegevensmap, versie, status enzovoort vinden met
sudo serveradmin fullstatus postgres
Antwoord 15
Voor ontwikkelingsdoeleinden is een van de eenvoudigste manieren om Postgres.app te installeren vanaf de officiële site. Het kan worden gestart/gestopt vanuit de map Applicatiesof door de volgende opdrachten in terminal te gebruiken:
# Start
open -a Postgres
# Stop
killall Postgres
killall postgres
Antwoord 16
Als je het niet hebt geïnstalleerd met Homebrewen rechtstreeks vanaf de Mac pakket, werkte dit voor mij voor PostgreSQL 12 bij gebruik van alle standaardlocaties, variabelen, enz.
$ sudo su postgres
bash-3.2$ /Library/PostgreSQL/12/bin/pg_ctl -D /Library/PostgreSQL/12/data/ stop
Antwoord 17
# Remove old database files (if there was any)
$ rm -rf /usr/local/var/postgres
# Install the binary
$ brew install postgresql
# init it
$ initdb /usr/local/var/postgres
# Start the PostgreSQL server
$ postgres -D /usr/local/var/postgres
# Create your database
$ createdb mydb
# Access the database
$ psql mydb
psql (9.0.1)
Type "help" for help.
Antwoord 18
Dit werkte voor mij (macOS v10.13(High Sierra)):
sudo -u postgres /Library/PostgreSQL/9.6/bin/pg_ctl start -D /Library/PostgreSQL/9.6/data
Of eerst
cd /Library/PostgreSQL/9.6/bin/
Antwoord 19
voor macports , gebruik gewoon de opdracht Load / Unload en de poortnaam van het hardlopen Server:
sudo port load postgresql96-server
- or -
sudo port unload postgresql96-server
Dus u hoeft u niet te onthouden waar de /Library/LaunchDaemons/org.macports.postgresql96.plist
Bestand bevindt.
20
Als u PostgreSQL hebt geïnstalleerd met behulp van de EnterprisedB-installatieprogramma, dan wat Kenial suggereerde is de manier om te gaan:
sudo -u postgres pg_ctl -D /Library/PostgreSQL/{version}/data start
sudo -u postgres pg_ctl -D /Library/PostgreSQL/{version}/data stop
21
docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres
https://hub.docker.com/_/postgres
22
Geen van de vorige antwoorden heeft het probleem voor mij vastgesteld, ondanks dat het verkrijgen van dezelfde foutmeldingen.
Ik was in staat om mijn instantie weer te krijgen en te draaien door het bestaande postmaster.pid -bestand te verwijderen dat is vergrendeld en niet toestond.
23
homebrew is de weg !!
Om de service te starten:
brew services start postgresql
Om het te vermelden:
brew services list | grep postgres
Om de service te stoppen:
brew services stop postgresql
24
Voor Mac & NBSP; OS & NBSP; X, ik hou echt van launchreket voor deze en andere achtergronddiensten die ik gebruikte in ontwikkeling.
Deze site heeft leuk instructies op installatie .
Hiermee geeft u een mooi scherm in uw systeemvoorkeuren waarmee u inloggen, opnieuw opstarten, rooten, rooten en starten.
25
Dit werkte elke keer voor mij, geïnspireerd op Craig Ringer:
brew install proctools
sudo pkill -u postgres
Proctools omvat pkill . Als je geen homebrew hebt: https://brew.sh/
26
Voor de volledigheid: Controleer of u zich in een tmux of scherm instantie. Beginnend werkt niet vanaf daar.
Van: Fout bij het starten van PostgreSQL geïnstalleerd via Homebrew: “Bewerking niet toegestaan”
Dit heeft het voor mij opgelost.
Antwoord 27
Er is een randgeval dat misschien nuttig is voor iemand:
Er is een optie dat je postgres.pid gevuld hebt met een of andere PID.
Als u uw machine opnieuw opstart en voordat PostgreSQL weer terug is, zal een ander proces die PID gebruiken.
Als dat gebeurt, worden zowel de pg_ctl-status als de brew-service gevraagd naar de PostgreSQL-status, en wordt u verteld dat deze upis .
Doe gewoon ps aux | grep <yourPID>
en controleer of het echt PostgreSQL is.
Antwoord 28
Ik had hetzelfde probleem. Ik heb al deze oplossingen geprobeerd, maar geen enkele werkte.
Ik heb het eindelijk werkend gekregen door de PostgreSQL HOST
te wijzigen in Django-instellingen van localhost
tot 127.0.0.1
.