Utwórz bazę danych z wiersza poleceń


Odpowiedzi:


157

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;

24
Ważne: createuser i createdb są uruchamiane w powłoce, a NIE z psql.
Kim Kern

22
Ale jeśli uruchomisz z psql, prawidłowe polecenia to:create user testuser; create database testdb;
kiril

66

Próbować:

sudo -u postgres psql -c 'create database test;'

9
nie zapomnij również o przyznaniu uprawnień:sudo -u postgres psql -c 'grant all privileges on database test to username;'
lukyer

32

createdbto 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 ;


3
Plus jeden za wskazówkę dotyczącą zakończenia na;
Jstuff

Chciałem tylko skomentować, że Postgres sprawia, że ​​WIELKIE LITERY są niższe. Więc CREATE DATABASE FOOfaktycznie 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/ ...
O-9

26

Jak wskazują niektóre odpowiedzi, createdbjest 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 localhostpoprawną nazwą hosta DB,5432 poprawnym portem DB i testdbnazwą bazy danych, którą chcesz utworzyć.

Teraz psqlmoż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 createdbi .psql9.4.15


To był właściwy sposób na utworzenie bazy danych na instancji, do której nie mogę ssh. Wszystkie próby uruchomienia parametru „CREATE DB” jako -c dla zdalnego narzędzia psql zakładały istnienie bazy danych o nazwie takiej jak użytkownik
Gili Garibi

14

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


2
PGPORT=5432
PGHOST="my.database.domain.com"
PGUSER="postgres"
PGDB="mydb"
createdb -h $PGHOST -p $PGPORT -U $PGUSER $PGDB

Jeśli zmienisz „PGDB” na „PGDATABASE” i wyeksportujesz je (lub dodasz przedrostek do polecenia), nie musisz ich przekazywać do polecenia, odczyta je ze środowiska.
Connor Bell
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.