sql >> Databasteknik >  >> RDS >> PostgreSQL

Postgresql:FATAL:rollen finns inte

Jag stötte på liknande problem när jag ställde in en ny Rails-applikation med Postgresql. Jag fick följande felmeddelanden nedan

FATAL:  role "promisepreston" does not exist
Couldn't create 'MyBlog_development' database. Please check your configuration.
rails aborted!
ActiveRecord::NoDatabaseError: FATAL:  role 

Caused by:
PG::ConnectionBad: FATAL:  role "promisepreston" does not exist

För att lösa detta följer du bara lösningen nedan

Först måste vi logga in på postgres användarkonto via kommandoradsgränssnittet;

sudo su - postgres

Anslut sedan till databasservern med psql-klienten, som postgres-rollen:

psql -U postgres

Välkommen till psql 10.6, den interaktiva PostgreSQL-terminalen.

[email protected]:~$ psql -U postgres
psql (10.6 (Ubuntu 10.6-0ubuntu0.18.04.1))
Type "help" for help

postgres=#

Därefter, kopplade till psql-klienten, skapar vi en roll med vårt önskade rollnamn som har LOGIN-attributet och vårt önskade lösenord , och som kan skapa databaser och hantera roller (N/B: Vänligen skriv inte detta postgres=# , eftersom det är en platshållare):

postgres=# create role rolename with createdb login password 'password1';

Notera det obligatoriska semikolonet (; ) i slutet av SQL-satsen. Enkla citattecken ( ' ' ) är inte en del av lösenordet, men måste bifoga det.

Fungerade det? Du kan kontrollera med kommandot \du (N/B: Vänligen skriv inte detta postgres=# , eftersom det är en platshållare):

postgres=# \du

Du kan nu köra kommandot för att skapa databasen för din Rails-applikation;

rails db:create

Och kör sedan också kommandot för att migrera databasen för din Rails-applikation;

rails db:migrate

Det är allt.

Jag hoppas att detta hjälper



  1. Markör för loop med dynamisk SQL-statement

  2. Det går inte att casta objekt av typen 'System.DBNull' till typen 'System.Byte[]'.

  3. Infogar NULL i MySQL tidsstämpel

  4. PHP mysqli() fungerar inte