initdb: não pode ser executado como root

1

Eu quero criar um cluster de banco de dados no PostgSQL no CentOS.

Quando eu digito o comando 'initdb', o resultado é como segue:

[root@cll agensgraph]# initdb

initdb: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will own the server process.
    
por Jessica 25.02.2018 / 13:30

2 respostas

-1
[root@cll ~]# sudo chown jessica:jessica /usr/local/agdata/
[root@cll ~]# cd /usr/local/
[root@cll local]# ll

total 8
drwxr-xr-x.  2 jessica jessica    6 Feb 26 18:06 agdata
drwxr-xr-x.  6 root    root      56 Feb 26 03:31 agensgraph
drwxr-xr-x.  2 root    root    4096 Feb 24 21:01 bin
drwxr-xr-x.  2 root    root       6 Nov  5  2016 etc
drwxr-xr-x.  2 root    root       6 Nov  5  2016 games
drwxr-xr-x.  4 root    root     160 Feb 24 21:01 include
drwxr-xr-x.  6 root    root    4096 Feb 24 21:01 lib
drwxr-xr-x.  2 root    root       6 Nov  5  2016 lib64
drwxr-xr-x.  2 root    root       6 Nov  5  2016 libexec
drwxr-xr-x.  2 root    root       6 Nov  5  2016 sbin
drwxr-xr-x. 13 root    root     169 Feb 24 21:01 share
drwxr-xr-x.  2 root    root       6 Nov  5  2016 src

[root@cll local]# cd agdata/
[root@cll agdata]# initdb
initdb: cannot be run as root
Please log in (using, e.g., "su") as the (unprivileged) user that will
own the server process.

[root@cll agdata]# su -l jessica
Last login: Mon Feb 26 23:31:29 CST 2018 from 192.168.109.1 on pts/2
[jessica@cll ~]$ cd /usr/local/agensgraph/
[jessica@cll agensgraph]$ initdb
The files belonging to this database system will be owned by user "jessica".
This user must also own the server process.

The database cluster will be initialized with locale "en_US.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".
Data page checksums are disabled.
fixing permissions on existing directory /usr/local/agdata ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok

WARNING: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.

Success. You can now start the database server using:

    ag_ctl -D /usr/local/agdata -l logfile start

[jessica@cll agensgraph]$ 

Explicação

insira a descrição do link aqui

    
por 26.02.2018 / 10:52
1

O banco de dados PostgreSQL requer que a inicialização seja executada como o usuário que realmente executará o processo de banco de dados. Este usuário não é você , mas uma conta de usuário do sistema, como postgres ou postgresql ou similar.

No CentOS, seguindo as as instruções encontradas no Wiki do PostgreSQL , você faria, como root,

service postgresql-9.6 initdb

ou

/usr/pgsql-9.6/bin/postgresql96-setup initdb

(assumindo que é o PostgreSQL 9.6 que você está configurando).

Outro site sugere

sudo postgresql-setup initdb

Se o pacote PostgreSQL em sua máquina veio com documentação (está fadado a ter feito), então esta documentação explicaria exatamente como a versão do banco de dados deveria ser inicializada.

    
por 25.02.2018 / 15:27