PostgreSQL szerver futtatása Void Linux rendszeren. A (z) initdb
futtatása operációs rendszer “postgres” felhasználóként:
[user@host]$ sudo -u postgres -i $ initdb -D "/var/lib/postgresql/data"
Fogadott kimenet:
könyvtár létrehozása / var / lib / postgresql / data … ok alkönyvtárak létrehozása … ok az alapértelmezett max_kapcsolatok kiválasztása … 100 az alapértelmezett megosztott_bufferek kiválasztása … 128 MB dinamikus megosztott kiválasztása memória megvalósítás … posix konfigurációs fájlok létrehozása … rendben a bootstrap parancsfájl futtatása … ok a bootstrap utáni inicializálás végrehajtása … területi beállítás: Az LC_MESSAGES nem állítható be alapértelmezett területi beállításra: Nincs ilyen fájl vagy könyvtár rendben, az adatok lemezre szinkronizálása … ok
FIGYELEM: a “megbízható” hitelesítés engedélyezése a helyi kapcsolatoknál Ezt megváltoztathatja a pg_hba.conf szerkesztésével, vagy a következő alkalommal az -A, vagy –auth-local és –auth-host opcióval. futtatja az initdb fájlt.
Sikeres. Most már elindíthatja az adatbázis-kiszolgálót: pg_ctl -D / var / lib / postgresql / data -l logfile start
Ezután elkezdtem létrehozni a szolgáltatást, megadtam a tulajdonjogot a “postgres” -nek és elindítottam:
[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
Futás:
A
[user@host]$ sudo -u postgres psql ...
a következő hibát jelzi:
psql: FATAL: role "postgres" does not exist
Megpróbáltam megadni a (z) /etc/sv/postgresql
– “postgres”, de nem szerencsés.
Ezek voltak az én forrásaim:
https://wiki.voidlinux.eu/PostgreSQL
PostgreSQL hiba: Végzetes: a „felhasználónév” szerep nem létezik
Nem tudom, mi legyen a következő lépés.
SZERKESZTÉS: psql: botlott: FATAL: a “postgres” szerepkör nem létezik . Nem futtatható a psql -l
, mert ugyanazt a hibát kapom, függetlenül attól, hogy melyik felhasználót futtatom psql
mint.
Megjegyzések
Válasz
Nem teljes válasz, de fontolja meg a initdb
itt található kézikönyvet: <: / p>
-U
username
--username=
username
Kiválasztja az adatbázis-superuser felhasználó nevét. Alapértelmezés szerint a
initdb
parancsot futtató tényleges felhasználó neve. Valójában nem fontos, hogy mi a superuser neve, de dönthet úgy, hogy megtartja a szokásos postgres nevet, még akkor is, ha az operációs rendszer felhasználójának neve eltér.
Jelentés …
-
initdb
futtatásakor OS-felhasználókéntpostgres
, a kezdeti DB superuser szerepkörpostgres
is – a szokásos Postgres-ben. Hallottam olyan rendszerekről, amelyek hajlították ezt a szabályt … -
Képesnek kell lennie a
postgres
név--username=postgres
az első superuser számára – kivéve, ha a csomagod mindezt komolyan elrontotta.
Megjegyzések
- Wow , ez a helyes irányba mutatott, rendben. Tudtam, hogy láttam valahol azt a
-U
zászlót, és innen jött: stackoverflow.com/questions/50746147/… Lehet, hogy rosszul olvastam Laurenz ' válaszát, de futottaminitdb -U UTF8 -D /var/lib/postgresql/data
és kitaláltam, mi a kezdeti DB superuser szerep az volt. Egyébként a kimerültség miatt végül majdnem összeestem az egész rendszeremmel. Elég eredményes nap. Köszönöm odaadását, Erwin, segítségét nagyra értékeljük. - @Jakov:
-U UTF8
. Jaj. Feltételezem, hogy-E UTF8
Sajnálom, hogy egy alattomos kódolt levél miatt elvesztette a napját. Aztán még egyszer: Ha a kezdetben feltetted volna a tényleges parancsodat, akkor valószínűleg fél napodat megmentettük volna.
role "postgres" does not exist
: nincs " postgres ". Ez az egyetlen Postgres telepítés ugyanazon a gépen? (Tehát biztosan a megfelelő példányhoz csatlakozik?) Ha igen, akkor a kérdés a következő: melyik adatbázis szerepkört állította be a telepítés. Nem ' nem ismerem a Void Linuxot vagy az XPBS csomagkezelőt ahhoz, hogy többet mondjak. Jobban megfelelhet a superuser.SE vagy az unix.SE fájlok számára.initdb
által létrehozott Postgres szerepkör, majd csatlakozzon az azonos nevű operációs rendszer felhasználóhoz, hogy a " trust " hitelesítési módszer. Nyilvánvaló, hogy nem " postgres " (ami épeszű alapértelmezés lenne).session_replication_role = 'origin'
-et kaptam. Nem nagyon használom ezt.:%s/XPBS/XBPS/g