PostgreSQL non è possibile creare l’utente

Problema: riesco a creare gli utenti o i database dalla shell (bash, OSX), ma non postgres cli. Da bash ottengo nessuna conferma in caso di successo.

Se provo a CREARE un RUOLO in psql quindi non ottengo alcuna risposta e non genera alcun errore. Se provo a createuser da bash quindi in caso di successo segnala nulla, se l’esito è negativo quindi genera l’errore: “il ruolo nome utente esiste già”.

Example:

Yunti-# CREATE ROLE testuser
Yunti-# \du
                             List of roles
 Role name |                   Attributes                   | Member of 
-----------+------------------------------------------------+-----------
 Yunti     | Superuser, Create role, Create DB, Replication | {}
 anything  |                                                | {}
 monkey    |                                                | {}

Yunti-# CREATE DATABASE testdb
Yunti-# \l
                              List of databases
   Name    | Owner | Encoding |   Collate   |    Ctype    | Access privileges 
-----------+-------+----------+-------------+-------------+-------------------
 Yunti     | Yunti | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 postgres  | Yunti | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 template0 | Yunti | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/Yunti         +
           |       |          |             |             | Yunti=CTc/Yunti
 template1 | Yunti | UTF8     | en_US.UTF-8 | en_US.UTF-8 | =c/Yunti         +
           |       |          |             |             | Yunti=CTc/Yunti
 test      | Yunti | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
 test5     | Yunti | UTF8     | en_US.UTF-8 | en_US.UTF-8 | 
(6 rows)

Yunti-# 

Una cosa simile accade quando si utilizza createdb.

Come posso creare il database e gli utenti in postgres cli?
E questo è normale per ottenere nessuna risposta per la maggior parte postgres comandi bash?

Info: gli utenti e i loro privilegi:

Yunti-# \du
                             List of roles
 Role name |                   Attributes                   | Member of 
-----------+------------------------------------------------+-----------
 Yunti     | Superuser, Create role, Create DB, Replication | {}
 anything  |                                                | {}
 monkey    |                                                | {}
Come hai fatto a installare PostgreSQL, e da dove?
Grazie è stato così semplice, bisogno ; (deve fare a meno di python e sql/javascript ; in pratica )

OriginaleL’autore Yunti | 2015-08-21

2 Replies
  1. 8

    Le vostre istruzioni non vengono eseguite, perché non terminare il loro corretto utilizzo di un ;.

    Preventivo dal manuale:

    Un comando è composto da una sequenza di token, terminata da un punto e virgola (“;”).

    E in il manuale per psql:

    Alla richiesta, l’utente può digitare i comandi SQL. Di solito, le linee di ingresso vengono inviati al server quando un comando di terminazione punto e virgola è raggiunto. Un fine linea non terminare il comando. Così i comandi possono essere ripartiti su più righe per ragioni di chiarezza. Se il comando è stato inviato ed eseguito senza errori, i risultati del comando vengono visualizzati sullo schermo.

    Se lo fai, si ottiene un output simile a questo:

    psql (9.4.4)
    Type "help" for help.
    
    postgres=# CREATE ROLE testuser;
    CREATE ROLE  ---<<<< this tells you the statement was executed
    
    postgres=#

    OriginaleL’autore a_horse_with_no_name

  2. 0

    Non so se il postgres client è l’utilizzo di altri comandi di OSX, come in Linux, ma suppongo che sia lo stesso.

    Questo docs link mostra alcune opzioni per postgres cliente:

    Sembra “\l” elenca i database, mentre l’opzione che si desidera vedere in ruoli e il loro accesso che è “\du”.

    Durante la creazione di un database all’interno del client deve ricevere una risposta nella forma di “CREAZIONE di DATABASE”. Forse si stanno avendo un qualche tipo di errore di sintassi?

    Non credo che gli utenti è creato altrove.

    Spero che questo risolve alcuni problemi.

    Grazie \qu aiuta a confermare ciò che gli utenti ci sono (siete di destra \l è il database). Sto ancora avendo problemi di creazione di utenti. Se io creo gli utenti dalla shell (bash) via createuser, questo funziona, ma non fornisce alcuna conferma se creato (solo in caso di un errore). Se lo faccio via postgres cli poi createuser non funziona (e dare nessun messaggio di errore) e CREARE il nome del RUOLO – non funziona (e dare nessun messaggio di errore); (Nota: non c’è di default postgres ruolo/utente creato è detto altrove – è presente solo su Linux, l’utente predefinito su OSX sembra essere la shell dell’utente)
    Aggiornata la mia domanda per essere più chiari – ancora non è possibile creare utenti o database stesso problema su 2 computer diversi.

    OriginaleL’autore Kahevajo

Lascia un commento