introdução

PostgreSQL is a powerful object-relational database management system, provided under a flexible BSD-style license. PostgreSQL contém muitos recursos avançados, é muito rápido e padrões compatíveis.

PostgreSQL tem ligações para muitas linguagens de programação como C, C++, Python, Java, PHP, Ruby… Pode ser usado para alimentar qualquer coisa, desde aplicações web simples a bases de dados maciças com milhões de registos.,

instalação do cliente

Se desejar apenas ligar-se a um servidor de PostgreSQL externo, não instale o pacote principal de PostgreSQL, mas instale o pacote cliente de PostgreSQL em alternativa. Para tal, utilize o seguinte comando

 sudo apt-get install postgresql-client

Depois de inserir a senha a que acede o PostgreSQL com comandos de linha., Você pode por exemplo inserir o seguinte

 SELECT * FROM table WHERE 1;

Você sair da conexão com

 \q

Instalação

Para instalar o servidor localmente, use a linha de comando e digite:

 sudo apt-get install postgresql postgresql-contrib

Isto irá instalar a versão mais recente disponível na sua versão do Ubuntu e comumente utilizados add-ons para ele.

veja “links externos” abaixo para opções para obter lançamentos mais recentes.,

instalar PostGIS, linguagens processuais, interfaces com clientes, etc

pacotes adicionais contêm horários de funcionamento da linguagem processual, add-ons como PostGIS, interfaces com clientes de linguagem como psycopg2 para Python, etc. Você pode obter uma listagem com:

Administração

p > pgAdmin III é uma interface gráfica útil para PostgreSQL, é essencial para iniciantes. Para instalá-lo, digite na linha de comando:

 sudo apt-get install pgadmin3

Você também pode usar o Synaptic, o gerenciador de pacotes do Sistema>menu de Administração para instalar estes pacotes.,

Configuração Básica do servidor

para iniciar, precisamos definir a senha do Usuário PostgreSQL (role) chamado “postgres”; não seremos capazes de acessar o servidor externamente de outra forma. Como o usuário local do Linux “postgres”, estamos autorizados a conectar e manipular o servidor usando o comando psql.

num terminal, tipo:

sudo -u postgres psql postgres

isto liga-se como um papel com o mesmo nome que o utilizador local, ou seja, “postgres”, à base de dados chamada “postgres” (primeiro argumento para psql).,

defina uma senha para a função de base de dados “postgres” usando o comando:

\password postgres

e dê a sua senha quando for solicitada. O texto da senha será escondido da consola para fins de segurança.

tipo de controlo+D ou \q para sair da linha de comandos de posgreSQL.

Create database

Para criar o primeiro banco de dados, que nós vamos chamar de “mydb”, simplesmente digite:

 sudo -u postgres createdb mydb

Instalar o Servidor de Instrumentação (para PgAdmin) para o Postgresql 8.4 ou 9,3

PgAdmin requer a instalação de um add-on para a funcionalidade completa., O “adminpack” addon, o que ele chama de Servidor de Instrumentação, é parte do postgresql-contrib, portanto, você deve instalar o pacote se você ainda não o fez:

 sudo apt-get install postgresql-contrib

para ativar a extensão, para “”Postgresql 8.4″”, execute o adminpack.sql script, simplesmente digite:

 sudo -u postgres psql < /usr/share/postgresql/8.4/contrib/adminpack.sql

Para “Postgresql 9.3″+ instalar o adminpack “extensão” no “postgres” banco de dados:

 sudo -u postgres psql CREATE EXTENSION adminpack;

Alternativa de Configuração do Servidor

Se você não pretende se conectar ao banco de dados a partir de outras máquinas, esta alternativa de configuração pode ser mais simples.,

Por omissão no Ubuntu, o Postgresql está configurado para usar a autenticação ‘ident sameuser’ para quaisquer ligações da mesma máquina. Confira a excelente documentação de Postgresql para mais informações, mas essencialmente isso significa que se o seu nome de usuário do Ubuntu for ‘foo’ e você adicionar ‘foo’ como um usuário de Postgresql, então você pode se conectar à base de dados sem precisar de uma senha.,

Desde que o único usuário que pode se conectar a uma nova instalação é que o usuário postgres, aqui está como criar manualmente uma conta de banco de dados (que é, neste caso, também um banco de dados de superusuário (root) com o mesmo nome que o nome de início de sessão e, em seguida, crie uma senha para o usuário:

 sudo -u postgres createuser --superuser $USER sudo -u postgres psql
 postgres=# \password $USER

programas de Cliente, por padrão, conectar-se ao host local utilizando o seu nome de login do Ubuntu e esperam encontrar um banco de dados com esse nome também., Então, para tornar as coisas REALMENTE fácil, use o seu novo privilégios de superusuário concedida acima para criar um banco de dados com o mesmo nome que o nome de início de sessão:

 sudo -u postgres createdb $USER

a Ligar para o seu próprio banco de dados para experimentar algumas SQL deve agora ser tão fácil como:

 psql

a Criação de banco de dados adicionais é tão fácil assim, por exemplo, depois de executar este:

 create database amarokdb;

Você pode ir em frente e dizer que o Amarok usa postgresql para armazenar seu catálogo de música., O nome da base de dados seria amarokdb, o utilizador seria o seu próprio nome de autenticação, e você nem sequer precisa de uma senha graças ao ‘ident sameuser’, para que possa deixar isso em branco.

usando a interface gráfica pgAdmin III

para ter uma ideia do que o PostgreSQL pode fazer, pode começar por ligar um cliente gráfico. Num tipo de terminal:

 pgadmin3

ser-lhe-á apresentada a interface pgAdmin III. Carregue no botão” Adicionar uma ligação a um servidor ” (canto superior esquerdo). Na nova janela, indique o endereço 127. 0. 0. 1 (A máquina Local é por omissão, para que possa ser deixada de fora.,), uma descrição do servidor, o banco de dados padrão (“mydb” no exemplo acima), seu nome de usuário (“postgres”) e sua senha. Mais um passo é necessário para permitir que pgAdmin III se conecte ao servidor, e que é Editar pg_hba.conf arquivo e alterar o método de autenticação do peer to md5 (não irá funcionar se você não tiver definido a palavra-passe):

sudo nano /etc/postgresql/9.3/main/pg_hba.conf

e altere a linha

# Database administrative login by Unix domain socketlocal all postgres peer

# Database administrative login by Unix domain socketlocal all postgres md5

Agora você deve recarregar as alterações na configuração do servidor e conectar pgAdmin III para o seu servidor de banco de dados PostgreSQL.,

sudo /etc/init.d/postgresql reload

com esta interface, poderá começar a criar e gerir bases de dados, consultar a base de dados, Executar SQl etc.

gerir o servidor

para saber mais sobre a gestão do PostgreSQL (mas sem as especificidades do Ubuntu), veja a documentação oficial do PostgreSQL

gerir os utilizadores e os direitos

a gestão do Utilizador é discutida em pormenor no capítulo de autenticação do cliente da documentação do PostgreSQL; a seguinte é uma introdução para o Iniciar.

para gerir os utilizadores, terá primeiro de editar /etc/postgresql/current/main/PG_ HBA.,conf e modificar a configuração padrão que é muito bloqueada e segura. Por exemplo, se você deseja postgres para gerir seus próprios usuários (não ligada com os usuários do sistema), você terá de adicionar a seguinte linha:

8<-------------------------------------------# TYPE DATABASE USER IP-ADDRESS IP-MASK METHODhost all all 10.0.0.0 255.255.255.0 md58<-------------------------------------------

o que significa que na sua rede local (10.0.0.0/24 – substitua com sua própria rede local !), os usuários do postgres podem se conectar através da rede ao banco de dados, fornecendo um par clássico de usuários / senha.

para além de permitir que um utilizador se ligue através da rede a uma base de dados no servidor, deverá activar o PostgreSQL para ouvir através de diferentes redes., Para isso, abra o / etc/postgresql/current/main / postgresql.conf no seu editor favorito e alterar os endereços listen_ como abaixo:

listen_addresses = '*'

para ouvir em todas as interfaces de rede. Veja os documentos para listen_ addresses para outras opções.

Para criar um banco de dados com um usuário que tem direitos totais no banco de dados, use o seguinte comando:

sudo -u postgres createuser -D -A -P myusersudo -u postgres createdb -O myuser mydb

A primeira linha de comando cria o usuário com o banco de dados, criação de direitos (-D) sem adicionar direitos de usuário -Um) e irá pedir-lhe para introduzir uma palavra-passe (-P)., A segunda linha de comando cria a base de dados ‘mydb com ‘myuser’ como proprietário.

Este pequeno exemplo provavelmente irá atender a maioria das suas necessidades. Para mais detalhes, consulte as páginas de manual correspondentes ou a documentação online.

reiniciar o servidor

Depois de configurar a rede / utilizadores que poderá necessitar para recarregar o servidor, aqui está um comando sugerido para o fazer.

sudo /etc/init.d/postgresql reload

algumas alterações de configuração no postgresql.,conf requerem um reinício, que vai encerrar conexões ativas e abortar transações não confirmadas:

sudo /etc/init.d/postgresql restart

ler Mais

Se você não estiver familiarizado com SQL, você pode querer olhar para esta linguagem poderosa, apesar de alguns usos simples PostgreSQL não pode exigir isso de conhecimento (como uma simples Django project).

o site PostgreSQL contém uma riqueza de informações sobre a utilização desta base de dados. Em particular, o tutorial é um ponto de partida útil, mas você pode ignorar o passo de instalação como você já o instalou usando pacotes Ubuntu.,

solução de problemas

fe_sendauth: Nenhuma senha fornecida

o seu pg_hba.conf especifica que a autenticação md5 deve ser usada para esta ligação com base na máquina de origem, no método de ligação e no utilizador/base de dados solicitado, mas a sua aplicação não forneceu uma senha.

altere o modo de autenticação ou defina uma senha para o utilizador a que se está a ligar e depois especifique essa senha na configuração da ligação da sua aplicação.,

FATAL: o papel “myusername” não existe

por padrão PostgreSQL conecta-se ao usuário PostgreSQL com o mesmo nome que o atual Usuário unix. Você não criou um usuário PostgreSQL por esse nome em seu banco de dados.

crie um utilizador adequado, ou especifique um nome de utilizador diferente com o qual se ligar. Na linha de comando, a bandeira-U faz isso.

FATAL: a base de dados “myusername “não existe

existe um utilizador chamado” myusername”, mas não existe uma base de dados com o mesmo nome.,

Por padrão PostgreSQL conecta-se à base de dados com o mesmo nome que o usuário que você está conectando como, mas não cria automaticamente a base de dados se ela não existir.

Crie a base de dados, ou especifique uma base de dados diferente para se conectar.

FATAL: a autenticação por pares falhou para o utilizador “myusername”

está a ligar-se ao localhost através de um ‘socket’ unix. Existe um utilizador chamado “myusername”, mas o seu utilizador actual do unix não é o mesmo que esse utilizador., O PostgreSQL está configurado para usar a autenticação “peer” nos soquetes unix para esta combinação de usuário/db, de modo que ele requer que seus usernames unix e postgresql correspondam.

conecte – se a partir do Usuário unix que corresponde ao usuário PostgreSQL desejado-talvez com sudo – u teusername psql-ou altere PG_ HBA.conf para usar um modo de autenticação diferente como” md5 ” para este utilizador.,

não foi possível conectar ao servidor: Não existe tal arquivo ou diretório

Um erro como este (possivelmente com diferentes unix socket caminho, dependendo da sua instalação):

 psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

pode significar uma série de coisas:

* O servidor não está executando;

* O servidor tem um diferente unix_socket_directories para o padrão na sua área de cliente libpq, quer devido a diferentes compilado padrões ou uma incompatibilidade de definição;

* O servidor está escutando em diferentes num “porta”., PostgreSQL emula portas TCP / IP em sockets unix usando o número de porta como sufixo para o arquivo socket, por exemplo 5432. elimine estes por sua vez.

primeiro certifique-se que o servidor está em execução. No Ubuntu, o ps-u postgres – f irá mostrar-lhe todos os processos em execução como postgres do Utilizador-você deseja ver vários chamados postgres. agora certifique-se que o servidor está a ouvir onde o seu cliente pensa que está. Para descobrir a pasta de ‘socket’ do seu servidor de PostgreSQL:

 sudo -u postgres psql -c "SHOW unix_socket_directories;"

ou em versões PostgreSQL mais antigas, unix_locket_directory como o parâmetro mudou de nome., Para mostrar a porta do servidor (que se aplica tanto para TCP/IP e em unix, sockets):

 sudo -u postgres psql -c "SHOW port;"

Se você ainda não consegue se conectar com o psql em unix do usuário postgres você pode verificar o soquete dir com o lsof:

 $ sudo lsof -U -a -c postgres COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME postgres 6565 postgres 5u unix 0xffff88005a049f80 0t0 183009 /tmp/.s.PGSQL.5432 postgres 6566 postgres 1u unix 0xffff88013bc22d80 0t0 183695 socket postgres 6566 postgres 2u unix 0xffff88013bc22d80 0t0 183695 socket

neste caso, a primeira linha é o socket local. Este servidor tem directório de ‘socket’ /tmp com a porta 5432.,

Se o seu cliente está procurando em um outro soquete de diretório, você provavelmente está tentando se conectar através de sockets unix para o padrão de soquete de caminho de e/ou para a porta padrão, e a libpq seu aplicativo cliente está vinculado a uma tem um compilado-unix-socket caminho e/ou porta de sua execução PostgreSQL. O mais provável é que o seu LD_ LIBRARY_ Path ou / etc/ld. so. conf tenha uma libpq diferente antes da que veio com a sua versão do PostgreSQL. Isso geralmente não importa muito, você pode apenas anular o diretório do socket.,

Para especificar uma alternativa tomada de diretório e/porta a porta para ligar, para especificar o soquete dir como o parâmetro host em suas opções de conexão, por exemplo, para conectar-se como usuário bob para a escuta do servidor em /tmp na porta 5433:

 psql -h /tmp -p 5433 -U bob ...

ou em conexão-formulário de cadeia de caracteres:

 psql "host=/tmp port=5433 user=bob ..."

O mesmo funciona com qualquer cliente que utiliza a libpq (todos os PostgreSQL ferramentas de cliente, além e.g. psycopg2, Pg gem em Ruby/Rails, PHP do postgres e DOP, Perl DBB::Pg, etc.)., Ele não funciona com clientes não-libpq como PgJDBC, py-postgresql, etc, mas a maioria deles não suportam sockets unix em tudo. Veja a documentação do cliente para clientes não baseados na libpq.

downloads de PostgreSQL oficiais

o projeto PostgreSQL fornece uma lista oficial de locais de download, incluindo um repositório de Software Ubuntu, em sua página de download. Em particular, os usuários do Ubuntu podem obter versões PostgreSQL mais recentes do que aquelas empacotadas em sua versão Ubuntu usando apt-get via apt.postgresql.org.

para suporte e serviços em torno de PostgreSQL veja a página de serviços e suporte.,

Empreendedb

a Página de downloads PostgreSQL Linux contém uma secção no” instalador gráfico ” construído pela empresa. Você descarrega o instalador, altera suas propriedades para permitir executá-lo como comando (ele tem .run extension), and run it from command prompt as in ” sudo whateveritwas.executar”.

Você acaba com

  • configurada DB server instance, que começa com o seu servidor
  • pgAdmin III UI client application

Note que o software instalado não será integrado com o Ubuntu software center., Como resultado, você não receberá nenhuma atualização de segurança do Ubuntu. No entanto, a versão instalada irá coincidir de perto com a versão mais recente do Ubuntu.

Turnkey Linux

um aparelho PostgreSQL baseado em Ubuntu é uma das formas mais fáceis de se pôr em funcionamento com o PostgreSQL no Ubuntu. É parte de uma família de aplicativos de software TurnKey Linux pré-integrados baseados no Ubuntu 10.04.1 (LTS lúcidos).