PostgreSQL-palvelimen käyttö Void Linuxissa. Asennuksen jälkeen juoksi initdb
käyttöjärjestelmän käyttäjänä ”postgres”:
[user@host]$ sudo -u postgres -i $ initdb -D "/var/lib/postgresql/data"
Vastaanotettu lähtö:
luodaan hakemisto / var / lib / postgresql / data … ok luodaan alihakemistoja … ok valitaan oletus max_connections … 100 valitaan oletus jaetut_puskurit … 128MB valitaan dynaamiset jaetut muistin toteutus … posix määritystiedostojen luominen … ok käynnissä bootstrap-komentosarja … ok suoritetaan bootstrap-jälkeinen alustus … locale: LC_MESSAGES -ohjelmaa ei voida asettaa oletuskieleksi: Ei tällaista tiedostoa tai hakemistoa ok synkronoidaan tietoja levylle … ok
VAROITUS: ”luotettavan” todennuksen ottaminen käyttöön paikallisille yhteyksille Voit muuttaa tämän muokkaamalla pg_hba.conf tai käyttämällä seuraavalla kerralla vaihtoehtoa -A, – –auth-local ja –auth-host suoritat initdb: n.
Onnistuminen. Voit nyt käynnistää tietokantapalvelimen seuraavasti: pg_ctl -D / var / lib / postgresql / data -l lokitiedoston alku
Olen sitten luonut palvelun, myöntänyt omistajuuden postgresille ja käynnistä se:
[user@host]$ ln -s /etc/sv/postgresql /var/service [user@host]$ sudo chown postgres: /var/service/postgresql [user@host]$ sudo sv start postgresql [user@host]$ ls -l /var/service/postgresql lrwxrwxrwx 1 postgres postgres 18 nov 2 17:05 /var/service/postgresql -> /etc/sv/postgresql
Käynnissä:
[user@host]$ sudo -u postgres psql ...
antaa minulle seuraavan virheen:
psql: FATAL: role "postgres" does not exist
Olen yrittänyt myöntää omistajalle /etc/sv/postgresql
– ”postgres”, mutta ei onnea.
Nämä olivat lähteitäni:
https://wiki.voidlinux.eu/PostgreSQL
PostgreSQL-virhe: Vakava: roolia ”käyttäjänimeä” ei ole
En tiedä mitä tehdä seuraavaksi.
MUOKKAA: kompastui psql: FATAL: rooli ”postgres” ei olemassa . Ei voida suorittaa psql -l
, koska saan saman virheen riippumatta siitä, kumman käyttäjän suoritan psql
kuin.
Kommentit
Vastaa
Ei täydellinen vastaus, mutta harkitse initdb
-opasta tästä :
-U
username
--username=
username
Valitsee tietokannan pääkäyttäjän käyttäjänimen. Tämä on oletusarvoisesti sen käyttäjän nimi, joka suorittaa
initdb
. Ei todellakaan ole tärkeää, mikä pääkäyttäjän nimi on, mutta voidaan päättää säilyttää tavanomainen nimi postgres, vaikka käyttöjärjestelmän käyttäjän nimi olisi erilainen.
Merkitys …
-
Suoritettaessa
initdb
käyttöjärjestelmän käyttäjänäpostgres
, alkuperäinen DB-pääkäyttäjän rooli onpostgres
– myös tavallisissa Postgres-tiedostoissa. Olen kuullut järjestelmien taipuvan tätä sääntöä … -
Sinun on voitava pakottaa nimi
postgres
kohtaan--username=postgres
alkuperäiselle pääkäyttäjälle – paitsi jos pakettisi sekoitti tätä kaikkea vakavasti.
Kommentit
- Vau , tämä osoitti minua oikeaan suuntaan. Tiesin, että näin
-U
-lipun jonnekin ja se oli täältä: stackoverflow.com/questions/50746147/… Olen ehkä lukenut Laurenz ' -vastauksen väärin, mutta juoksininitdb -U UTF8 -D /var/lib/postgresql/data
ja arvasin mitä alkuperäinen DB-pääkäyttäjän rooli oli. Joka tapauksessa päädyin melkein kaatamaan koko järjestelmän uupumuksen takia. Melko tuottava päivä. Kiitos omistautumisestasi Erwin, apuasi arvostetaan suuresti. - @Jakov:
-U UTF8
. Oeh. Piti olla-E UTF8
oletan? Anteeksi päiväsi, joka on kadonnut yhden harhaanjohtavan sekoitetun kirjeen vuoksi. Sitten vielä kerran: Jos olisit osoittanut alussa kysymyksessäsi todellisen komentosi, olemme ehkä säästäneet puolet päivästäsi.
role "postgres" does not exist
: " postgres ". Onko se ainoa Postgres-asennus samalle koneelle? (Joten olet varma, että muodostat yhteyden oikeaan ilmentymään?) Jos näin on, kysymys on: mikä tietokannan rooli asennuksellasi on. En tiedä ' tarpeeksi Void Linuxia tai XPBS-paketinhallintaa tarpeeksi sanoa enemmän. Voi sopia paremmin superuser.SE- tai unix.SE-tiedostoille.initdb
luoma Postgres-rooli ja muodosta yhteys sitten saman nimiseen käyttöjärjestelmäkäyttäjään, jolle " trust " todennustapa. Ilmeisesti ei " postgres " (mikä olisi järkevä oletus).session_replication_role = 'origin'
. Minusta ei ole paljon hyötyä siitä.:%s/XPBS/XBPS/g