Ich versuche eine Datenbank über die Kommandozeile zu erstellen. Mein Betriebssystem ist Centos und die Postgres-Version ist 10.9.
sudo -u postgres psql createdb test
Password for user test:
Warum mich nach Benutzer fragen?
postgresql
Juan Reina Pascual
quelle
quelle
Antworten:
Ändern Sie den Benutzer in postgres:
Benutzer für Postgres erstellen
Datenbank erstellen
Zugriff auf die Postgres Shell
Stellen Sie dem Postgres-Benutzer die Berechtigungen zur Verfügung
quelle
create user testuser; create database testdb;
Versuchen:
quelle
sudo -u postgres psql -c 'grant all privileges on database test to username;'
createdb
ist 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:Hinweis: Beenden Sie Ihre SQL-Anweisungen immer mit
;
quelle
;
CREATE DATABASE FOO
würde eigentlich Datenbank namens erstelltfoo
. Ich habe ungefähr 5 Minuten gebraucht, um herauszufinden, warum "Datenbank nicht existiert". siehe: stackoverflow.com/questions/43111996/…Wie einige der Antworten zeigen,
createdb
handelt 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ährendbuser
:Ersetzen Sie
localhost
durch Ihren korrekten DB-Hostnamen,5432
durch den richtigen DB-Port undtestdb
durch den Datenbanknamen, den Sie erstellen möchten.Jetzt
psql
kann eine Verbindung zu dieser neu erstellten Datenbank hergestellt werden:Getestet mit
createdb
undpsql
Versionen9.4.15
.quelle
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.
Mit dem obigen Befehl erhalten Sie die psql-Befehlszeilenschnittstelle im Admin-Modus.
Benutzer erstellen
Datenbank erstellen
HINWEIS: <> dürfen beim Schreiben von Befehlen nicht verwendet werden, sondern nur zur Kennzeichnung der Variablen
quelle
quelle