Próbuję utworzyć bazę danych z wiersza poleceń. Mój system operacyjny to centos, a wersja postgres to 10.9.
sudo -u postgres psql createdb test
Password for user test:
Dlaczego pytasz mnie przez użytkownika?
Próbuję utworzyć bazę danych z wiersza poleceń. Mój system operacyjny to centos, a wersja postgres to 10.9.
sudo -u postgres psql createdb test
Password for user test:
Dlaczego pytasz mnie przez użytkownika?
Odpowiedzi:
Zmień użytkownika na postgres:
su - postgres
Utwórz użytkownika dla Postgres
$ createuser testuser
Utwórz bazę danych
$ createdb testdb
Dostęp do postgres Shell
psql ( enter the password for postgressql)
Nadaj uprawnienia użytkownikowi postgres
$ alter user testuser with encrypted password 'qwerty';
$ grant all privileges on database testdb to testuser;
create user testuser; create database testdb;
createdb
to narzędzie wiersza poleceń, które można uruchomić z basha, a nie z psql. Aby utworzyć bazę danych z psql, użyj instrukcji create database w następujący sposób:
create database [databasename];
Uwaga: pamiętaj, aby zawsze kończyć instrukcje SQL znakiem ;
;
CREATE DATABASE FOO
faktycznie utworzyłbym bazę danych o nazwie foo
. Zajęło mi około 5 minut, aby dowiedzieć się, dlaczego „baza danych nie istnieje”. patrz: stackoverflow.com/questions/43111996/ ...
Jak wskazują niektóre odpowiedzi, createdb
jest to narzędzie wiersza poleceń, które można wykorzystać do utworzenia bazy danych.
Zakładając, że masz nazwanego użytkownika dbuser
, możesz użyć następującego polecenia do utworzenia bazy danych i zapewnienia dostępu do dbuser
:
createdb -h localhost -p 5432 -U dbuser testdb
Zastąp localhost
poprawną nazwą hosta DB,5432
poprawnym portem DB i testdb
nazwą bazy danych, którą chcesz utworzyć.
Teraz psql
może zostać użyty do połączenia się z tą nowo utworzoną bazą danych:
psql -h localhost -p 5432 -U dbuser -d testdb
Testowane z wersjami createdb
i .psql
9.4.15
Jako domyślna konfiguracja Postgres, tworzony jest użytkownik o nazwie postgres, a użytkownik postgres ma pełny dostęp superadministratora do całej instancji PostgreSQL działającej w twoim systemie operacyjnym.
sudo -u postgres psql
Powyższe polecenie powoduje wyświetlenie interfejsu wiersza poleceń psql w trybie administratora.
Tworzenie użytkownika
sudo -u postgres createuser <username>
Tworzenie bazy danych
sudo -u postgres createdb <dbname>
UWAGA: <> nie mogą być używane podczas pisania komend, służą jedynie do oznaczenia zmiennych
PGPORT=5432
PGHOST="my.database.domain.com"
PGUSER="postgres"
PGDB="mydb"
createdb -h $PGHOST -p $PGPORT -U $PGUSER $PGDB