Erstellen Sie eine Datenbank über die Befehlszeile


Antworten:


134

Ändern Sie den Benutzer in postgres:

su - postgres

Benutzer für Postgres erstellen

$ createuser testuser

Datenbank erstellen

$ createdb testdb

Zugriff auf die Postgres Shell

psql ( enter the password for postgressql)

Stellen Sie dem Postgres-Benutzer die Berechtigungen zur Verfügung

$ alter user testuser with encrypted password 'qwerty';
$ grant all privileges on database testdb to testuser;

20
Wichtig: createuser und createdb werden in der Shell und NICHT mit psql ausgeführt.
Kim Kern

16
Aber wenn mit psql ausgeführt, sind die richtigen Befehle:create user testuser; create database testdb;
kiril

Du bist toll! Vielen Dank!
Urasquirrel

57

Versuchen:

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

7
Vergessen Sie nicht, auch Berechtigungen zu erteilen:sudo -u postgres psql -c 'grant all privileges on database test to username;'
lukyer

27

createdbist ein Befehlszeilenprogramm, das Sie von bash und nicht von psql ausführen können. Um eine Datenbank aus psql zu erstellen, verwenden Sie die Anweisung create database wie folgt:

create database [databasename];

Hinweis: Beenden Sie Ihre SQL-Anweisungen immer mit ;


2
Plus eins für den Hinweis über das Ende mit;
Jstuff

Ich wollte nur kommentieren, dass Postgres UPPERCASE zu senken macht. Also CREATE DATABASE FOOwürde eigentlich Datenbank namens erstellt foo. Ich habe ungefähr 5 Minuten gebraucht, um herauszufinden, warum "Datenbank nicht existiert". siehe: stackoverflow.com/questions/43111996/…
O-9

21

Wie einige der Antworten zeigen, createdbhandelt es sich um ein Befehlszeilenprogramm, mit dem eine Datenbank erstellt werden kann.

Angenommen, Sie haben einen Benutzer namens dbuser, kann der folgende Befehl verwendet werden, um eine Datenbank zu erstellen und Zugriff auf Folgendes zu gewähren dbuser:

createdb -h localhost -p 5432 -U dbuser testdb

Ersetzen Sie localhostdurch Ihren korrekten DB-Hostnamen, 5432durch den richtigen DB-Port und testdbdurch den Datenbanknamen, den Sie erstellen möchten.

Jetzt psqlkann eine Verbindung zu dieser neu erstellten Datenbank hergestellt werden:

psql -h localhost -p 5432 -U dbuser -d testdb

Getestet mit createdbund psqlVersionen 9.4.15.


Dies war der richtige Weg, um eine Datenbank für eine Instanz zu erstellen, zu der ich nicht ssh kann. Bei allen Versuchen, "CREATE DB" als -c-Parameter für das Remote-Dienstprogramm psql auszuführen, wurde davon ausgegangen, dass eine Datenbank mit dem Namen "Benutzer" vorhanden ist
Gili Garibi,

13

Als Standardkonfiguration von Postgres wird ein Benutzer namens postgres erstellt, und der Benutzer postgres hat vollen Superadministratorzugriff auf die gesamte PostgreSQL-Instanz, die auf Ihrem Betriebssystem ausgeführt wird.

sudo -u postgres psql

Mit dem obigen Befehl erhalten Sie die psql-Befehlszeilenschnittstelle im Admin-Modus.

Benutzer erstellen

sudo -u postgres createuser <username>

Datenbank erstellen

 sudo -u postgres createdb <dbname>

HINWEIS: <> dürfen beim Schreiben von Befehlen nicht verwendet werden, sondern nur zur Kennzeichnung der Variablen


2
PGPORT=5432
PGHOST="my.database.domain.com"
PGUSER="postgres"
PGDB="mydb"
createdb -h $PGHOST -p $PGPORT -U $PGUSER $PGDB
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.