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

  • Kerro meille mikä Postgres-versio yrität asentaa ja mistä sait paketin. Virhesanoma on riittävän selkeä: 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.
  • Versio on postgresql-9.6.10_1. Kyllä, se ' on ainoa PostgreSQL: n asennus järjestelmääni ja palvelimesta on käynnissä vain yksi esiintymä. Pitäisikö minun siirtää kysymys sitten? En tiedä ' en tiedä …
  • Etkö ole varma, että täältä löytyy VOID Linux- tai XPBS-asiantuntijoita … Tärkeintä on löytää 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).
  • Ajattelin yhtä paljon, mutta minä ' ei ole löytynyt roolin löytämisessä. Kuten kysymyksessä mainitsin, en voi ' t psql ollenkaan, joten en voi ' t luetella olemassa olevia rooleja. Onko postgresql.conf-tiedostossa ehkä kirjoitettu jotain asiaankuuluvaa? Jotain mitä minun pitäisi etsiä? Olen ' tarttunut rooliin ja saanut session_replication_role = 'origin'. Minusta ei ole paljon hyötyä siitä.
  • :%s/XPBS/XBPS/g

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 …

  1. Suoritettaessa initdb käyttöjärjestelmän käyttäjänä postgres, alkuperäinen DB-pääkäyttäjän rooli on postgres – myös tavallisissa Postgres-tiedostoissa. Olen kuullut järjestelmien taipuvan tätä sääntöä …

  2. 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 juoksin initdb -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.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *