# pkg update # portsnap fetch extract
# pkg install postgresql15-server-15.1_1
# /usr/local/etc/rc.d/postgresql enable postgresql enabled in /etc/rc.conf
# service postgresql initdb The files belonging to this database system will be owned by user "postgres". This user must also own the server process. The database cluster will be initialized with this locale configuration: provider: libc LC_COLLATE: C LC_CTYPE: C.UTF-8 LC_MESSAGES: C.UTF-8 LC_MONETARY: C.UTF-8 LC_NUMERIC: C.UTF-8 LC_TIME: C.UTF-8 The default text search configuration will be set to "english". Data page checksums are disabled. creating directory /var/db/postgres/data15 ... ok creating subdirectories ... ok selecting dynamic shared memory implementation ... posix selecting default max_connections ... 100 selecting default shared_buffers ... 128MB selecting default time zone ... America/Belem creating configuration files ... ok running bootstrap script ... ok performing post-bootstrap initialization ... ok syncing data to disk ... ok initdb: warning: enabling "trust" authentication for local connections initdb: hint: 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: /usr/local/bin/pg_ctl -D /var/db/postgres/data15 -l logfile start
# /usr/local/etc/rc.d/postgresql start 2023-03-29 17:45:38.216 -03 [14795] LOG: ending log output to stderr 2023-03-29 17:45:38.216 -03 [14795] HINT: Future log output will go to log destination "syslog".
# su - postgres $
$ psql psql (15.1) Type "help" for help. postgres=#
postgres=# ALTER USER postgres WITH PASSWORD 'sua_senha_aqui'; ALTER ROLE
– Por exemplo, procure as linhas abaixo:
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: host all all 127.0.0.1/32 trust # IPv6 local connections: host all all ::1/128 trust
OBS: Nas linhas acima você irá configurar os IPs que podem acessar seu banco e o método de autenticação. No meu caso, vou dar um exemplo liberando o acesso vindo de qualquer rede com autenticação por senha:
# TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domain socket connections only local all all trust # IPv4 local connections: #host all all 127.0.0.1/32 trust host all all 0.0.0.0/0 md5 # Modificada # IPv6 local connections: #host all all ::1/128 trust host all all ::1/128 md5 # Modificada
OBS: As linhas modificadas em questão especificam uma regra de acesso para clientes que se conectam ao servidor usando o protocolo “host”, permitindo que todos os usuários (representados por “all”) se conectem a todos os bancos de dados (também “all”) a partir de qualquer endereço IP (representado por “0.0.0.0/0”). A autenticação será realizada usando o método “md5”, que é uma forma segura de autenticação baseada em senha que armazena as senhas como um hash criptográfico em vez de texto simples.
# /usr/local/etc/rc.d/postgresql restart 2023-03-31 17:24:19.626 -03 [97839] LOG: ending log output to stderr 2023-03-31 17:24:19.626 -03 [97839] HINT: Future log output will go to log destination "syslog".