Etapa 1: Adicionar fonte RPM (obter o endereço de download no site oficial)
Endereço do site oficial do PostgreSQL: https://yum.postgresql.org/
yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
PS: Se houver um erro no processo de instalação, ou o prompt foi carregado, mas não há pacote de dependência relacionado, você pode limpar o cache do yum primeiro. Limpar o
cache do yum:
Os parâmetros do yum clean incluem cabeçalhos, pacotes, metadados, dbcache, plugins, expire-cache, rpmdb, tudo
yum clean headers #清理/var/cache/yum的headers清理
yum clean packages #清理/var/cache/yum下的软件包
yum clean metadata
Etapa 2: instalar o servidor PostgreSQL 9.6 e as extensões de terceiros relacionadas
Instruções de instalação relacionadas:
servidor núcleo de banco de dados postgresql96-server
extensão adicional de terceiros postgresql96-contrib
postgresql96-devel arquivos de cabeçalho e bibliotecas de desenvolvimento de linguagem C
Etapa 3: verifique se a instalação foi bem-sucedida
rpm -aq| grep postgres
Etapa 4: crie um local de caminho de armazenamento de banco de dados
Para facilitar o gerenciamento unificado, um caminho unificado pode ser estabelecido para o armazenamento
mkdir -p /data/pg/data #存放数据库的文件夹
chown -R postgres:postgres /data/pg #为新创建的pg文件夹分配数据库服务的操作权限
chown -R postgres:postgres /data/pg/data #为存放数据库的文件夹分配权限
chmod 750 /data/pg/data
Etapa 5: definir variáveis de ambiente
Edite o arquivo / etc / profile,
vim /etc/profile
Adicione a seguinte configuração de informações no final:
PGDATA=/data/pg/data
PGHOST=127.0.0.1
PGDATABASE=postgres
PGUSER=postgres
PGPORT=5432
PATH=/usr/pgsql-9.6/bin:$PATH
export PATH
export PGDATA PGHOST PGDATABASE PGUSER PGPORT
export TMOUT=1000
Então, para que as alterações tenham efeito
source /etc/profile
Verifique se ele foi adicionado com sucesso:
export
Definir variáveis de ambiente (outros métodos):
export PATH = / usr / pgsql-9.6 / bin: $ PATH
export LD_LIBRARY_PATH = / usr / pgsql-9.6 / lib
export PGDATA = / data / pg / dat
Etapa 6: inicializar o banco de dados
Digite o usuário postgres:
su postgres #切换到postgres用户
initdb -D /data/pg/data #初始化数据库
#或
/usr/pgsql-9.6/bin/postgresql96-setup initdb -D /data/pg/data
exit #退出当前postgres用户
Etapa 7: Visualize a instalação relacionada
cd /data/pg/data
Etapa 8: configurar acessível remotamente
Modifique o arquivo 1: /data/pg/data/pg_hba.conf, adicione o método de acesso por senha remota
vim /data/pg/data/pg_hba.conf
Encontre # conexões locais IPv4: adicione uma linha abaixo dela
host all all 0.0.0.0/0 md5
Arquivo de modificação 2: arquivo de configuração /data/pg/data/postgresql.conf
encontrado
#listen_addresses = 'localhost'
, Exclua o # anterior, o parâmetro localhost significa que apenas o servidor atual pode ser conectado ao banco de dados, se você deseja especificar o endereço para poder acessar, você pode inserir o endereço ip, separar vários endereços com vírgulas, se você abrir todos os endereços para acessar
listen_addresses = '*'
virar para cima
#port = 5432
Exclua o # na frente, aqui você pode especificar a porta para acessar o banco de dados
Etapa 8: modifique a configuração e prepare-se antes de inicializar
Modifique o arquivo: /usr/lib/systemd/system/postgresql-9.6.service
nano /usr/lib/systemd/system/postgresql-9.6.service
#把aLocation of database direcotry配置节里面没有指定正确的PGDATA。所以我们需要将下面的PGDATA设置成正确值
Environment=PGDATA=/data/pg/data/
PS: Após modificar as informações remotas:
reinicie o serviço postgresql-9.6 para tornar o arquivo de configuração efetivo.
Serviço postgresql-9.6 restart
Etapa 9: configurar o processamento de inicialização
systemctl enable postgresql-9.6.service
Etapa 10: iniciar o banco de dados postgresql
su postgres -c "/usr/pgsql-9.6/bin/pg_ctl start -D /data/pg/data"
ps -ef|grep postgres #查看相关进程
Etapa 11 modificar a senha:
Faça login como usuário postgres:
su postgres
Conecte-se ao banco de dados:
psql -U postgres
Modifique a senha do usuário postgres:
Alter user postgres with password '123456';
Saia da conexão do banco de dados
\q
Reinicie o serviço
bash-4.2$ pg_ctl restart
could not change directory to "/root": Permission denied
waiting for server to shut down.... done
server stopped
server starting
bash-4.2$ < 2018-03-08 16:44:37.861 CST > LOG: redirecting log output to logging collector process
< 2018-03-08 16:44:37.861 CST > HINT: Future log output will appear in directory "pg_log".
Etapa 12 de processamento do firewall (fechar ou adicionar porta):
PS: geralmente não é recomendado fechar o firewall diretamente no ambiente de produção
systemctl stop firewalld #关闭防火墙
systemctl enable firewalld #开机启用防火墙
systemctl start firewalld #开启防火墙
firewall-cmd --add-service=postgresql --permanent #开放postgresql服务
firewall-cmd --zone=public --add-port=5432/tcp --permanent #或者可以直接添加端口
firewall-cmd --reload # 重载防火墙
firewall-cmd --list-ports #查看占用端口
Etapa 13: use o Navicat Premium para se conectar remotamente:
PS: Por causa do problema da versão do banco de dados PG,
pode ocorrer um erro . A mensagem de erro é a seguinte:
PostgreSQL: coluna "rolcatupdate" não existe erro
no Navicat premium causará um erro quando a conexão for bem sucedida, o funcionamento da tabela ou o estabelecimento do banco de dados aparecerá
Tente encontrar o problema:
o motivo:
A solução final: alterar a versão do Navicat Premium para Navicat Premium12
suplemento:
systemctl enable postgresql-9.5.service
su postgres
bash-4.2 $ ps -ef | grep postgres
bash-4.2 $ kill -9 5439 #Primeiro parar todos os processos
bash-4.2 $ ps -ef | grep postgres # Nenhum processo em execução
bash- 4.2 $ systemctl enable postgresql-9.6.service
e digite a senha:
bash-4.2 $ service postgresql-9.6 restart
bash-4.2 $ ps -ef | grep postgres
# foi executado novamente bash-4.2 $ systemctl status postgresql-9.6.service # Sim Verde aparece, indicando que começou com sucesso!
bash-4.2 $ systemctl stop postgresql-9.6.service #First stop
bash-4.2 $ systemctl start postgresql-9.6.service
PS: Depois de modificar as informações remotas:
reinicie o serviço postgresql-9.6 para tornar o arquivo de configuração efetivo
serviço postgresql-9.6 restart
PS : O
serviço de reinicialização no ECS Linux CentOS 7 não é mais operado por serviço, mas por systemctl.
Visualizar: systemctl status sshd.service
Iniciar: systemctl start sshd.service
Reiniciar: systemctl restart sshd.service
自 启 : systemctl enable sshd.service
systemctl restart postgresql-9.6.service
Desinstalar PostgreSQL
yum erase postgresql96
PS: Resolva o problema de agrupamento "insensível ao acento" e o problema de estender a função pgcrypto, insira no terminal do banco de dados
CRIAR EXTENSÃO sem acento;