Criei um pacote de instalação do postgres, versão 10, para o Slackware, a partir dos ficheiros do slackbuilds.org.
Precisei de colocar a BD numa drive SSD e, por isso, a configuração foi um pouco diferente do normal. Seguem as instruções.
installpkg postgresql-10.2-x86_64-1_SBo.tgz
groupadd -g 209 postgres
useradd -u 209 -g 209 -d /disco4/pgsql postgres
mkdir /disco4/pgsql
chown -R postgres:postgres /disco4/pgsql
su postgres -c "initdb -D /disco4/pgsql/10.2/data --locale=en_US.UTF-8 -A md5 -W"
Depois tive que atualizar a diretoria das BDs no ficheiro /etc/rc.d/rc.postgresql
. Onde estava:
DATADIR=/var/lib/pgsql/$PG_VERSION/data
alterei para
DATADIR=/disco4/pgsql/$PG_VERSION/data
Depois já se pode arrancar com o postgres:
/etc/rc.d/rc.postgresql start
Para criar um utilizador “alex” e dar-lhe permissões de administrador, executar os comandos seguintes, inserindo a password de superuser, de cada vez:
sudo -u postgres createuser alex
sudo -u postgres createdb alex
sudo -u postgres psql
Com este último comando, entramos no psql
e deve emitir-se o comando seguinte para atribuir permissões de administrador ao novo utilizador:
alter user alex with encrypted password 'password';
Para sair: \q
O postgres – vá-se lá saber porquê – cria uma BD de nome alex
para o utilizador alex
e atribui-a ao utilizador. Se quisermos criar outra BD para esse utilizador, podemos emitir os comandos seguintes, ainda dentro do psql:
sudo -u postgres createdb nova_bd
sudo -u postgres psql
grant all privileges on database nova_bd to alex ;
Depois, para sair, escrever \q
O utilizador alex
pode agora entrar com o seu login:
psql -U alex
e ligar-se à sua nova BD:
\c nova_bd
Para correr um script SQL externo – por exemplo, para criar uma nova BD – executar o comando:
\i script.sql
Par ausar o postgres a partir do Python3, deve instalar-se o pacote seguinte:
pip3 install -U psycopg2-binary