Instalar PostgreSQL 9.4.4 no CentOS 7

O PostgreSQL é o melhor gerenciador de bancos de dados open-source na atualidade, embora um pouco mais complexo do que sistemas alternativos como o MariaDB (que substituiu o MySQL como alternativa open-source após este ser adquirido pela Oracle).

O CentOS 7.1 traz a versão 9.2.13 por padrão mas a última versão disponível no site do PostgreSQL, na data da produção deste texto, é a 9.4.4. Se a versão 9.2 atende seus objetivos, basta instalar os pacotes através do yum. Mas, se você pretende ficar com a versão mais nova, deve fazer uma instalação personalizada.

Existem duas formas de fazer a instalação:

  • A primeira é utilizando o repositório YUM do próprio PostgreSQL, que contém os RPMs com as versões mais novas para várias distribuições Linux. É o jeito mais rápido e fácil, e o mais indicado para iniciante, mas tem como desvantagem não poder personalizar configurações individuais do PostgreSQL. Se optar por esta forma de instalação, siga as instruções em PostgreSQL YUM Installation. Esta forma de instalação não será mostrada neste texto.
  • A segunda é fazendo o download do código fonte e compilando o PostgreSQL especificamente para sua distribuição Linux. É o jeito mais flexível para configurar opções para o binário gerado e o método mais indicado para usuários avançados, mas tem como desvantagem a maior complexidade para fazer todos os componentes envolvidos (PostgreSQL e suas dependências) funcionaram corretamente para a compilação. É exatamente essa forma de instalação que será detalhada neste texto.

1) Compilação e instalação:

  1. Como usuário root, instale os pré-requisitos para a compilação do código fonte do PostgreSQL (muitos já estarão instalados por padrão e alguns não são obrigatórios; aqui mostro todos os pré-requisitos, exceto os necessários para compilar a documentação; se quiser instalar uma Tcl mais nova, siga as instruções deste post e não instale a tcl e a tcl-devel no comando abaixo):
    yum install make gcc tar gzip bzip2 readline readline-devel zlib perl perl-libs perl-devel perl-ExtUtils-Embed python python-devel gettext gettext-common-devel gettext-devel gettext-libs openssl openssl-libs openssl-devel openldap openldap-devel pam pam-devel krb5-libs krb5-devel flex flex-devel bison bison-devel tcl tcl-devel libxml2 libxml2-devel libxslt libxslt-devel
  2. Como usuário normal, faça o download do código fonte do PostgreSQL 9.4.4 (ou outro mais recente que esteja em produção) diretamente em http://www.postgresql.org/ftp/source. Descompacte o arquivo.
    tar -jxvf postgresql-9.4.4.tar.bz2
  3. Como usuário normal, entre no diretório criado e execute o comando configure. Abaixo está um exemplo com todas as principais opções; se você não precisa de alguma feature, basta retirar do comando abaixo (obs.: no exemplo abaixo estou usando uma Tcl instalada que não é a padrão do CentOS):
    ./configure --prefix=/usr/local/pgsql --enable-nls --with-perl --with-python --with-tcl --with-tclconfig=/usr/local/lib/tcl8.6.4/lib --with-openssl --with-pam --with-ldap --with-readline --with-libxml --with-libxslt
  4. Se o comando configure retornou algum erro você terá de descobrir como resolver consultando a documentação de instalação do PostgreSQL. Se tudo correu bem, execute o make world (como usuário normal) para compilar o PosrgreSQL, a documentação (HTML e man pages) e todos os módulos adicionais (contrib):
    make world
    (output da compilação omitido)
    PostgreSQL, contrib, and documentation successfully made. Ready to install.
  5. Se a mensagem final mostrada acima aparecer, você conseguiu compilar o PosrgreSQL, os módulos contrib e e documentação. Agora vamos testar a compilação executando, como usuário normal, o comando:
    make check
    (output dos testes omitido)
    =======================
     All 145 tests passed. 
    =======================
  6. Se você recebeu a mensagem de que toda a compilação passou nos testes, o PostgreSQL está pronto para ser instalado. Lembre-se que no comando configure (etapa 3) nós ajustamos o diretório de instalação do PostgreSQL para /usr/local/pgsql. Entretanto, eu não gosto de instalar diretamente nesse diretório por um motivo simles: para facilitar upgrades futuros de versões. Assim, nós vamos criar um diretório específico para a versão do PostgreSQL e vamos criar o /usr/local/pgsql como um link simbólico que aponta para o diretório específico. Agora, como usuário root, crie o diretório específico, o link simbólico e execute o make install:
    mkdir /usr/local/pgsql-9.4.4
    ln -s /usr/local/pgsql-9.4.4 /usr/local/pgsl
    make install-world
    (output da instalação omitido)
    PostgreSQL, contrib, and documentation installation complete.
  7. Agora o PostgreSQL está instalado no diretório /usr/local/pgsql-9.4.4, sendo acessado através do link simbólico /usr/local/pgsql, mas não está pronto para ser utilizado. Siga as tarefas pós-instalção agora.

2) Tarefas pós-instalação:

  1. Crie um grupo de sistema, um usuário de sistema e uma senha para administrar o PostgreSQL:
    groupadd -r postgres
    
    useradd -d /usr/local/pgsql -g postgres -r -s /bin/bash postgres
    
    passwd postgres
  2. Agora vamos ajustar as permissões:
    chown postgres:postgres /usr/local/pgsql-9.4.4 -R
    
    chmod 755 /usr/local/pgsql-9.4.4
  3. Agora, como usuário postgres, vamos acertar alguns arquivos em nosso diretório home (/usr/local/pgsql). Primeiro crie o arquivo .bash_profile (não esqueça o ponto no começo do nome do arquivo) com o seguinte conteúdo:
    # .bash_profile
    
    # Funções e aliases básicos
    if [ -f ~/.bashrc ]; then
     . ~/.bashrc
    fi
    
    
    # Configuração do ambiente
    export PATH=/usr/local/pgsql/bin:$HOME/.local/bin:$HOME/bin:$PATH
    export LD_LIBRARY_PATH=/usr/local/pgsql/lib:$LD_LIBRARY_PATH
    export MANPATH=/usr/local/pgsql/man:$MANPATH
  4. Agora crie o arquivo .bashrc (não esqueça o ponto no começo do nome do arquivo) com o seguinte conteúdo:
    # .bashrc
    
    # Ativa definições globais
    if [ -f /etc/bashrc ]; then
     . /etc/bashrc
    fi
  5. Agora você já tem um ambiente adequado para começar a usar o PostgreSQL mas, ainda, não tem um banco de dados criado. A primeira coisa a fazer é decidir em que diretório do sistema salvar o banco de dados. Eu gosto de colocar os dados sob /var/lib/pgsql. Como usuário root, faça o seguinte:
    mkdir /var/lib/pgsql
    
    chown postgres:postgres /var/lib/pgsql
    
    chmod 750 /var/lib/pgsql
  6. Agora, como usuário postgres, vamos criar um diretório para os dados, outro para os logs, e um arquivo de log para o servidor:
    cd /var/lib/pgsql
    
    mkdir data log
    
    chmod 700 data
    
    touch log/server.log
  7. Agora precisamos inicializar o cluster do banco de dados (Database Cluster) do PostgreSQL. Eu sempre inicializo os cluster com locale=C e encoding=utf8 para permitir qualquer character set nos bancos de dados. Faça o seguinte, como usuário postgres:
    initdb --locale=C --encoding=utf8 -D /var/lib/pgsql/data
    
    (output omitido)
    
    Success. You can now start the database server using:
    
     postgres -D /var/lib/pgsql/data
    or
     pg_ctl -D /var/lib/pgsql/data -l logfile start
  8. Agora sim podemos iniciar o PostgreSQL (o comando deve ser digitado em uma única linha!):
    pg_ctl start -s -w -p /usr/local/pgsql/bin/postmaster -D /var/lib/pgsql/data -l /var/lib/pgsql/log/server.log
    
    cat /var/lib/pgsql/log/server.log 
    LOG: database system was shut down at 2015-09-25 20:52:54 BRT
    LOG: MultiXact member wraparound protections are now enabled
    LOG: autovacuum launcher started
    LOG: database system is ready to accept connections
  9. Se o log mostrou que o sistema está pronto para aceitar conexões, meus parabéns! Você compilou, instalou, configurou e iniciou o PostgreSQL no CentOS 7. Mas lembre-se: você ainda NÃO TEM UM BANCO DE DADOS para uso próprio! O PostgreSQL foi iniciado e criado com 3 bancos de dados administrativos, do sistema do próprio PostgreSQL (o banco postgres, o banco template0 e o banco template1). Como ainda temos algumas coisas para configurar antes de podermos usar o PostgreSQL, vamos parar o banco de dados (o comando deve ser digitado em uma única linha):
    pg_ctl stop -s -w -m smart -p /usr/local/pgsql/bin/postmaster -D /var/lib/pgsql/data -l /var/lib/pgsql/log/server.log
    
    cat /var/lib/pgsql/log/server.log 
    LOG: database system was shut down at 2015-09-25 20:52:54 BRT
    LOG: MultiXact member wraparound protections are now enabled
    LOG: autovacuum launcher started
    LOG: database system is ready to accept connections
    LOG: received smart shutdown request
    LOG: autovacuum launcher shutting down
    LOG: shutting down
    LOG: database system is shut dow

3) Script para o systemd:

As distribuições linux mais novas (CentOS 7, Oracle Linux 7, Red Hat Enterprise Linux 7, SuSE Enterprise Linux 12 e outras) utilizam o systemd como substituto ao antigo método init de inicialização do linux, e como substituto dos scripts de inicialização e término de serviços em /etc/init.d. Assim, precisamos criar um arquivo de serviço do systemd para podermos iniciar e parar o banco, bem como configurar a inicialização automática do PostgreSQL durante o boot e o término automático durante o shutdown.

Como usuário root, vá para dentro do diretório /etc/systemd/system/multi-user.target.wants e crie o arquivo postgresql.service com o seguinte conteúdo (atenção, os comandos maiores devem ser digitados em uma única linha):

# Arquivo de controle do PostgreSQL personalizado

[Unit]
Description=PostgreSQL 9.4.4 (instalação personalizada)
After=network.target

[Service]
Type=forking

User=postgres
Group=postgres

Environment=PGPORT=5432

Environment=PGDATA=/var/lib/pgsql/data
Environment=PGLOGFILE=/var/lib/pgsql/log/server.log
Environment=PGRUNFILE=/usr/local/pgsql/bin/postmaster
Environment=LD_LIBRARY_PATH=/usr/local/lib/tcl8.6.4/lib:/usr/local/pgsql/lib:$LD_LIBRARY_PATH
Environment=PATH=/usr/local/lib/tcl8.6.4/bin:/usr/local/pgsql/bin:$PATH

# StandardOutput=syslog

# Desabilita OOM kill no postmaster
OOMScoreAdjust=-1000

ExecStart=/usr/local/pgsql/bin/pg_ctl start -s -w -p ${PGRUNFILE} -D ${PGDATA} -t 300 -l ${PGLOGFILE}
ExecStop=/usr/local/pgsql/bin/pg_ctl stop -D ${PGDATA} -s -w -m smart -l ${PGLOGFILE}
ExecReload=/usr/local/pgsql/bin/pg_ctl reload -D ${PGDATA} -s

# Tempo de timeout para início/shutdown
TimeoutSec=300

[Install]
WantedBy=multi-user.target

Agora vamos dar um reload do daemon do systemd para que o arquivo de controle acima seja lido. Ainda como root, execute o seguinte comando:

systemctl daemon-reload

E agora é a hora da verdade: vamos testar nosso novo serviço de inicialização e shutdown do PostgreSQL, como root:

systemctl start postgresql.service

tail /var/lib/pgsql/log/server.log
(output omitido)
LOG: shutting down
LOG: database system is shut down
LOG: database system was shut down at 2015-10-22 15:04:18 BRST
LOG: MultiXact member wraparound protections are now enabled
LOG: database system is ready to accept connections
LOG: autovacuum launcher started

systemctl stop postgresql.service

tail /var/lib/pgsql/log/server.log
(output omitido)
LOG: MultiXact member wraparound protections are now enabled
LOG: database system is ready to accept connections
LOG: autovacuum launcher started
LOG: received smart shutdown request
LOG: autovacuum launcher shutting down
LOG: shutting down
LOG: database system is shut down

systemctl start postgresql.service

systemctl status postgresql.service
postgresql.service - PostgreSQL 9.4.4 (instalação personalizada)
 Loaded: loaded (/etc/systemd/system/multi-user.target.wants/postgresql.service)
 Active: active (running)
(... restante do output omitido ...)

Como visto acima o systemd já está controlando adequadamento o PostgreSQL e cuidando da inicialização/término automático durante o boot do sistema.

4) Instalando linguagens procedurais:

Para a criação de funções, procedures e triggers no PostgreSQL precisamos de instalar pelo menos uma linguagem procedural no banco de dados template1 (que é o template a partir do qual, normalmente, todos os bancos de dados dos usuários são criados). A linguagem padrão é a PL/pgSQL, mas existem outras, como a PL/Perl, a PL/Python e a PL/Tcl.

Inicialmente, vamos ver quais as linguagens procedurais instaladas. Como usuário postgres, dê o seguinte comando:

$ createlang -l template1
Procedural Languages
    Name | Trusted? 
---------+----------
 plpgsql | yes

Conforme ilustrado acima, somente a PL/pgSQL está instalada no banco de dados template1. Para instalar a PL/Perl e a PL/Tcl, faça o seguinte:

$ createlang plperl template1
$ createlang pltcl template1
$ createlang -l template1
Procedural Languages
    Name | Trusted? 
---------+----------
 plpgsql | yes
 plperl  | yes
 pltcl   | yes

Conforme ilustrado acima agora o template1 já tem as 3 linguagens procedurais mais importantes: PL/pgSQL, PL/Perl e PL/Tcl. Note que essas linguagens são marcadas como “Trusted”, o que significa que as funções, triggers e procedures criadas nessas linguagens não permitem o acesso às funções internas do PostgreSQL e/ou do sistema de arquivos, sendo consideradas seguras para uso por todos os usuários (não permitem que usuários acessem dados ou ojetos que de outra forma eles não teriam acesso). Qualquer usuário pode criar código usando essas linguagens.

Existem versões “Untrusted” da linguagem PL/Perl e PL/Tcl. Também existe uma versão “Untrusted” da PL/Python (não existe uma versão Trusted da PL/Python ainda). Essas linguagens “Untrusted” permitem que o usuário acesse mecanismos internos do banco de dados e/ou do sistema subjacente, não sendo consideradas de uso seguro por todos os usuários. Como são linguagens “Untrusted”, somente o usuário administrador do PostgreSQL pode criar código nessas linguagens.

Para instalar as versões “Untrusted” das linguagens procedurais, faça o seguinte:

$ createlang plperlu template1
$ createlang pltclu template1
$ createlang plpythonu template1
$ createlang -l template1
 Procedural Languages
    Name   | Trusted? 
-----------+----------
 plpgsql   | yes
 plperl    | yes
 pltcl     | yes
 plperlu   | no
 pltclu    | no
 plpythonu | no

Conforme ilustrado acima o banco template1 agora está com todas as principais linguagens procedurais instaladas, tando as “Trusted” quanto as “Untrusted”.

5) Aumentando a segurança:

Caso você não tenha notado o usuário postgres tem acesso garantido ao PostgreSQL e nem mesmo uma senha é solicitada (por isso você instalou as linguagens procedurais diretamente).

Isso ocorre pois o PostgreSQL aceita conexões locais pelo método de autenticação “trust”. Para aumentar a segurança, temos que criar uma senha para o usuário postgres e depois alterar a configuração de acesso do PostreSQL.

Primeiro vamos criar uma senha para o usuário postgres. Siga o exemplo abaixo:

[postgres@host ~]$ psql 
psql (9.4.4)
Type "help" for help.

postgres=# alter role postgres
postgres-# with encrypted password 'senha';
ALTER ROLE
postgres=# \q

[postgres@host ~]$

Agora tente entrar solicitando explicitamente a senha:

[postgres@host ~]$ psql -W
Password: senha
psql (9.4.4)
Type "help" for help.

postgres=# \q

[postgres@host ~]$

Pronto, agora que você já configurou uma senha para o usuário postgres, vamos alterar o mecanismo de acesso ao PostgreSQL. Edite o arquivo /var/lib/pgsql/data/pg_hba.conf e alterar as linhas de acesso para algo mais seguro, como por exemplo:

# TYPE   DATABASE   USER   ADDRESS        METHOD
local    all        all                   md5
host     all        all    127.0.0.1/32   md5
host     all        all    ::1/128        md5

O exemplo acima está permitindo conexões ao PostgreSQL via socket locais (type local) ou através dos endereços IPv4 e IPv6 de localhost (127.0.0.1/132 e ::1/128). Todas essas conexões exigem o uso do método de autenticação md5, que solicita uma senha criptografada. Note que a configuração acima não permite que o PostgreSQL aceite conexões de outros hosts: só aceita conexões originadas dentro do próprio host do PostgreSQL (localhost). Depois veremos como liberar conexões a partir de outros hosts, mas por enquanto, essa segurança está adequada.

Para fazer o PostgreSQL ler as novas configurações do arquivo pg_hba.conf, temos que dar um restart como usuário root:

[root@host ~]# systemctl restart postgresql.service

Agora, como usuário postgres, tente acessar o PostgreSQL: será solicitada uma senha como no exemplo abaixo:

[postgres@host data]$ psql
Password: senha
psql (9.4.4)
Type "help" for help.

postgres=#

6) Alterando configurações do PostgreSQL para o português:

O PostgreSQL até agora está configurado com os padrões da língua inglesa. Para alterar os principais parâmetros para o português, edite o arquivo /var/lib/pgsql/data/postgresql.conf e deixe os seguintes parâmetros conforme o exemplo abaixo:

log_timezone = 'Brazil/East'

datestyle = 'iso, dmy'

timezone = 'Brazil/East'

lc_monetary = 'pt_BR.UTF-8'

lc_numeric = 'pt_BR.UTF-8'

lc_time = 'pt_BR.UTF-8'

default_text_search_config = 'pg_catalog.portuguese'

Para que as alterações tenham efeito, será necessário reiniciar o PostgreSQL como usuário root:

[root@host ~]# systemctl restart postgresql.service

7) Em resumo

Até agora você configurou, compilou e instalou o código fonte para ficar com o PostgreSQL 9.4.4 em seu CentOS 7.

Além disso criou um usuário postgres e diretórios padronizados para a instalação.

Instalou linguagens procedurais no banco template1 e aumentou a segurança das conexões ao exigir somente conexões com senha criptografadas.

Você também criou um arquivo para o systemd iniciar e parar o PostgreSQL de forma automática, e via usuário root.

Também configurou os principais parâmetros de linguagem para o português.

Nesse momento você já tem uma instalação do PostgreSQL totalmente funcionante e pronta para uso!

O único porém é que a configuração atual de nosso PostgreSQL só aceita conexões de localhost. Se isso é tudo que você precisa, meus parabéns! Trabalho feito!

Por outro lado, se você precisa que seu PostgreSQL aceite conexões de outros hosts (da mesma rede ou até via internet, por exemplo), teremos que alterar as configurações, criar conexões SSL por segurança e alterar o firewall do CentOS. Isso será visto em outro post. Até lá!

1,027 thoughts on “Instalar PostgreSQL 9.4.4 no CentOS 7”

  1. Pingback: masturbator
  2. Pingback: adam and eve deals
  3. Pingback: moodle pontevel
  4. Pingback: Brazilian Hair
  5. Pingback: porn movie
  6. Pingback: porn movie
  7. Pingback: emprendedora
  8. Pingback: piala dunia 2018
  9. Pingback: clit vibrator
  10. Pingback: Anal Bead Toy
  11. Pingback: Craft foam sheets
  12. Pingback: هایک ویژن
  13. Pingback: configuraciones
  14. Pingback: 100% kona coffee
  15. Pingback: Cloud Archiving
  16. Pingback: software reviews
  17. Pingback: twisted vibrator
  18. Pingback: best kona coffee
  19. Pingback: rabbit vibrator
  20. Pingback: realistic dildo
  21. Pingback: blow job
  22. Pingback: massage mini
  23. Pingback: network
  24. Pingback: adidas鞋
  25. Pingback: finger vibrator
  26. Pingback: کفسابی
  27. Pingback: Xvideo
  28. Pingback: com meu bebe
  29. Pingback: butt plug
  30. Pingback: sex toy review
  31. Pingback: huge dildo
  32. Pingback: کفسابی
  33. Pingback: Strap-on
  34. Pingback: the bunny vibrator
  35. Pingback: vibrator as gift
  36. Pingback: digital marketing
  37. Pingback: parcel tape
  38. Pingback: thrusting anal toy
  39. Pingback: eva adult toy
  40. Pingback: adult toys
  41. Pingback: ترمیم مو
  42. Pingback: RMUTT Thailand
  43. Pingback: هایک ویژن
  44. Pingback: anal beads
  45. Pingback: Ripoff Report
  46. Pingback: SEO specialist
  47. Pingback: anal sex toys
  48. Pingback: personal injury
  49. Pingback: really big dildo
  50. Pingback: app for pc
  51. Pingback: Pinganillo
  52. Pingback: gold necklace
  53. Pingback: peak vibrator
  54. Pingback: numbers
  55. Pingback: sex movie
  56. Pingback: prostate massage
  57. Pingback: first sex strap on
  58. Pingback: mumbai police
  59. Pingback: anal stimulation
  60. Pingback: sex toy review
  61. Pingback: wand massagers
  62. Pingback: Orlando SEO agency
  63. Pingback: Womanizer
  64. Pingback: Cracked iPhone
  65. Pingback: Vibrating Dildos
  66. Pingback: top selling dildo
  67. Pingback: خرید apple id
  68. Pingback: کریو میکر
  69. Pingback: lifelike sex dolls
  70. Pingback: خرید vpn
  71. Pingback: خرید کریو
  72. Pingback: خرید vpn
  73. Pingback: خرید کریو
  74. Pingback: Facebook fan Page
  75. Pingback: Play harmonica
  76. Pingback: anal desensitizing
  77. Pingback: sex Maza
  78. Pingback: mumbai police
  79. Pingback: خرید هاست
  80. Pingback: 卡巴熊
  81. Pingback: projector bracket
  82. Pingback: 美容外科
  83. Pingback: coffee and beans
  84. Pingback: نماشویی
  85. Pingback: Sahara
  86. Pingback: see this here
  87. Pingback: amateur porn
  88. Pingback: forex bonus 100
  89. Pingback: 90's hits
  90. Pingback: Throwback music
  91. Pingback: xnxx.com
  92. Pingback: Women Boutique
  93. Pingback: Ragazza pendant
  94. Pingback: خرید vpn
  95. Pingback: kona coffee beans
  96. Pingback: Ko coffee
  97. Pingback: خرید vpn
  98. Pingback: هاست
  99. Pingback: 100% K coffee
  100. Pingback: persian setar
  101. Pingback: خرید vpn
  102. Pingback: our website
  103. Pingback: vegas packages
  104. Pingback: سئو
  105. Pingback: best coffee beans
  106. Pingback: kona coffee
  107. Pingback: خرید vpn
  108. Pingback: how to make coffee
  109. Pingback: خرید کریو
  110. Pingback: خرید vpn
  111. Pingback: خرید کریو
  112. Pingback: خرید vpn
  113. Pingback: helpful resources
  114. Pingback: خرید vpn
  115. Pingback: SIlverware bags
  116. Pingback: rsync hacks
  117. Pingback: کولر سوله
  118. Pingback: خرید vpn
  119. Pingback: tam
  120. Pingback: خرید vpn
  121. Pingback: خرید vpn
  122. Pingback: V3rmillion
  123. Pingback: sensitizer cream
  124. Pingback: one day deals
  125. Pingback: اثاث
  126. Pingback: termeh
  127. Pingback: خرید vpn
  128. Pingback: گوگل adwords
  129. Pingback: خرید vpn
  130. Pingback: گوگل adwords
  131. Pingback: خرید vpn
  132. Pingback: Belize city inn
  133. Pingback: گوگل adwords
  134. Pingback: 脱毛
  135. Pingback: vpn
  136. Pingback: gym shark
  137. Pingback: گوگل adwords
  138. Pingback: Create Mauritius
  139. Pingback: persian tar
  140. Pingback: resume sample
  141. Pingback: کولر مسجد
  142. Pingback: گوگل adwords
  143. Pingback: cash parking
  144. Pingback: سیستم cctv
  145. Pingback: خرید vpn
  146. Pingback: خرید vpn
  147. Pingback: سیستم cctv
  148. Pingback: خرید طلا
  149. Pingback: سیستم cctv
  150. Pingback: سیستم cctv
  151. Pingback: خرید vpn
  152. Pingback: خرید طلا
  153. Pingback: zand game
  154. Pingback: IPhone bulk
  155. Pingback: سیستم cctv
  156. Pingback: خرید طلا
  157. Pingback: gratis inserieren
  158. Pingback: خرید vpn
  159. Pingback: 100 kona coffee
  160. Pingback: prostate kit
  161. Pingback: سیستم cctv
  162. Pingback: خرید vpn
  163. Pingback: drivers hp
  164. Pingback: orgasm toy
  165. Pingback: kinky toys
  166. Pingback: intense vibrator
  167. Pingback: sheet
  168. Pingback: sex toy haul
  169. Pingback: beauty
  170. Pingback: fix my credit
  171. Pingback: خرید طلا
  172. Pingback: nipple clamps
  173. Pingback: سیستم cctv
  174. Pingback: خرید طلا
  175. Pingback: how to have sex
  176. Pingback: massive dong
  177. Pingback: classic vibrator
  178. Pingback: خرید vpn
  179. Pingback: کولر 13000
  180. Pingback: خرید طلا
  181. Pingback: how to use a dildo
  182. Pingback: سیستم cctv
  183. Pingback: how to use a dong
  184. Pingback: olcsó tanfolyam
  185. Pingback: Asian comedy
  186. Pingback: womanizer review
  187. Pingback: dildo substitute
  188. Pingback: pegging
  189. Pingback: خرید طلا
  190. Pingback: hp drivers
  191. Pingback: palladium material
  192. Pingback: hydroquinone
  193. Pingback: سیستم cctv
  194. Pingback: safelist
  195. Pingback: iphone repair
  196. Pingback: buy vibrator
  197. Pingback: penis suction
  198. Pingback: Organic food
  199. Pingback: Weston Movers
  200. Pingback: Simeon Yahweh
  201. Pingback: biohealth protein
  202. Pingback: realistic vibe
  203. Pingback: bahis siteleri
  204. Pingback: kona coffee beans
  205. Pingback: bahis siteleri
  206. Pingback: miniclip
  207. Pingback: bahis siteleri
  208. Pingback: bahis siteleri
  209. Pingback: bahis siteleri
  210. Pingback: flying shark
  211. Pingback: bahis siteleri
  212. Pingback: fifa world cup
  213. Pingback: bahis siteleri
  214. Pingback: bahis siteleri
  215. Pingback: goldenbah's
  216. Pingback: Waterproof Jackets
  217. Pingback: sex toys whips
  218. Pingback: Morgellons Cure
  219. Pingback: climax cream
  220. Pingback: clash royale hack
  221. Pingback: naemi varna
  222. Pingback: Sandskädda
  223. Pingback: online jobs 2018
  224. Pingback: strap-on dildo
  225. Pingback: solgar
  226. Pingback: matka result
  227. Pingback: Top Compras
  228. Pingback: jageze
  229. Pingback: dating app
  230. Pingback: Free SEO Submitter
  231. Pingback: nile river camp
  232. Pingback: cash
  233. Pingback: Equipment
  234. Pingback: garudaqq android
  235. Pingback: ionizer
  236. Pingback: Piercing
  237. Pingback: p3d coin
  238. Pingback: Headphone Repairs
  239. Pingback: psychic
  240. Pingback: Instagram unfollow
  241. Pingback: Computer City
  242. Pingback: psychic
  243. Pingback: Abuja forum
  244. Pingback: gps tracker
  245. Pingback: Generic cialis
  246. Pingback: slovari
  247. Pingback: youtube2mp3
  248. Pingback: Computer City
  249. Pingback: برش ليزر
  250. Pingback: respuestas ceneval
  251. Pingback: prayer
  252. Pingback: golf handicap
  253. Pingback: masturbation
  254. Pingback: remy hair
  255. Pingback: Indian hair
  256. Pingback: prepper arts
  257. Pingback: lesbian
  258. Pingback: malaysian hair
  259. Pingback: peruvian hair
  260. Pingback: sexier heat up
  261. Pingback: Coinbase
  262. Pingback: The Bullet Sex Toy
  263. Pingback: slovar dalya
  264. Pingback: Drop Waist
  265. Pingback: wuxiaworld
  266. Pingback: travel news
  267. Pingback: zavtra prazdniki
  268. Pingback: antibiotics
  269. Pingback: seks besplatno
  270. Pingback: pubg t-shirt
  271. Pingback: sasha grey pussy
  272. Pingback: Atorvastatin
  273. Pingback: Hydroquinone
  274. Pingback: sportotobet
  275. Pingback: Hydroquinone
  276. Pingback: Chegg login
  277. Pingback: خرید vpn
  278. Pingback: magic
  279. Pingback: Toronto Escorts
  280. Pingback: 12 inch dildo
  281. Pingback: reliable
  282. Pingback: Cialis daily
  283. Pingback: Viagra kaufen
  284. Pingback: Cialis daily
  285. Pingback: Cialis online
  286. Pingback: Generic for cialis
  287. Pingback: Viagra from canada
  288. Pingback: threesome sex toys
  289. Pingback: MARQUIS
  290. Pingback: Computers
  291. Pingback: lesbian dildo sex
  292. Pingback: trah_net_621
  293. Pingback: prazniki segodnya
  294. Pingback: strap on harness
  295. Pingback: Best Butt Plug
  296. Pingback: make money online
  297. Pingback: Fire Prick
  298. Pingback: dildo use
  299. Pingback: Ashley Elizabeth
  300. Pingback: penis pump
  301. Pingback: best vibrator
  302. Pingback: AdamandEve
  303. Pingback: clitoris
  304. Pingback: Subscription Box
  305. Pingback: hd film izle
  306. Pingback: adult toys
  307. Pingback: scarlet spank me
  308. Pingback: male masturbator
  309. Pingback: silicone vibrator
  310. Pingback: Rabbit Sex Toy
  311. Pingback: aerobics training
  312. Pingback: strapon my man
  313. Pingback: free photos
  314. Pingback: free milf porn
  315. Pingback: 4 iyunya 2807
  316. Pingback: DraftKings DFS
  317. Pingback: longer sex
  318. Pingback: Tire Pressure
  319. Pingback: friv
  320. Pingback: Gifts and gadgets
  321. Pingback: Brisbane painters
  322. Pingback: Tens unit
  323. Pingback: NFL DFS
  324. Pingback: College Football
  325. Pingback: College Basketball
  326. Pingback: g spot rabbit
  327. Pingback: Milf porn
  328. Pingback: سكس
  329. Pingback: how to
  330. Pingback: Sexy cam
  331. Pingback: aflamsex
  332. Pingback: lesbian sex toys
  333. Pingback: Cryto curency
  334. Pingback: rottweiler puppy
  335. Pingback: Live cams
  336. Pingback: Sex live
  337. Pingback: Car lockout
  338. Pingback: Livesexgirls
  339. Pingback: Freexxx
  340. Pingback: strawberry lube
  341. Pingback: Porn video
  342. Pingback: Hot babe
  343. Pingback: Sexy shemale show
  344. Pingback: Iphone deal
  345. Pingback: Cheap iphone case
  346. Pingback: lelo cruise
  347. Pingback: Iphone 7 case
  348. Pingback: scorpio
  349. Pingback: سكس
  350. Pingback: marketing apps
  351. Pingback: vibrators
  352. Pingback: Cialis 5 mg
  353. Pingback: سكس
  354. Pingback: MILF
  355. Pingback: سكس مترجم
  356. Pingback: see thru panties
  357. Pingback: 2018 NFL Schedule
  358. Pingback: Garo Kassabian
  359. Pingback: desktop
  360. Pingback: nyc brownstone
  361. Pingback: TOYOTA
  362. Pingback: defamation lawyer
  363. Pingback: prazdnik
  364. Pingback: best ben wa balls
  365. Pingback: whatsapp
  366. Pingback: lesbian toys
  367. Pingback: lesbian dildo
  368. Pingback: rabbit vibrator
  369. Pingback: mp3 songs
  370. Pingback: aflampornhd
  371. Pingback: Musicpleer
  372. Pingback: best sex toys
  373. Pingback: more on this page
  374. Pingback: provided link
  375. Pingback: read completely
  376. Pingback: tounge vibrators
  377. Pingback: cat memento
  378. Pingback: find out more here
  379. Pingback: more on this page
  380. Pingback: continue
  381. Pingback: high end sex toys
  382. Pingback: follow the link
  383. Pingback: using sex toys
  384. Pingback: djswoope
  385. Pingback: home inspections
  386. Pingback: Luxury Vibrator
  387. Pingback: Classic Vibrator
  388. Pingback: Best Anal Dildo
  389. Pingback: Best Wand Massager
  390. Pingback: Bullet Vibrator
  391. Pingback: Sex Lubricant
  392. Pingback: nipple stimulator
  393. Pingback: vagina tightening
  394. Pingback: poker88
  395. Pingback: sex toy tutorial
  396. Pingback: how to use a vibe
  397. Pingback: MILF Porn
  398. Pingback: mp3juices
  399. Pingback: tubidy mp3
  400. Pingback: big dildo review
  401. Pingback: Buy cialis
  402. Pingback: the bullet sex toy
  403. Pingback: writeessay
  404. Pingback: Cialis prices
  405. Pingback: g-spot vibrator
  406. Pingback: Buy cialis
  407. Pingback: Buy cialis
  408. Pingback: rapture vibator
  409. Pingback: istorii
  410. Pingback: netflix free
  411. Pingback: iPhone 8 Cable
  412. Pingback: Iphone charger
  413. Pingback: Lenovo
  414. Pingback: پیچ و مهره
  415. Pingback: golfing for all
  416. Pingback: blow job tips
  417. Pingback: link to the page
  418. Pingback: هپاش
  419. Pingback: notehub.org
  420. Pingback: play free pc games
  421. Pingback: notehub.org
  422. Pingback: spreader bar
  423. Pingback: here is the link
  424. Pingback: notehub.org
  425. Pingback: delux sex toys
  426. Pingback: click at this page
  427. Pingback: zavtra prazdnik
  428. Pingback: notehub.org
  429. Pingback: yoni masseur paris
  430. Pingback: boston amazon
  431. Pingback: Used cellphone
  432. Pingback: head honcho toy
  433. Pingback: wet wabbit
  434. Pingback: auto taxi
  435. Pingback: oral sex toys
  436. Pingback: datumoufukuiken
  437. Pingback: pure kona coffee
  438. Pingback: interracial porn
  439. Pingback: malydomeczek
  440. Pingback: Baby Highchair
  441. Pingback: Freemason Gifts
  442. Pingback: evedensia
  443. Pingback: events
  444. Pingback: Best Wand Massager
  445. Pingback: Best Penis Pump
  446. Pingback: Kinky Bondage
  447. Pingback: Best Anal Toy
  448. Pingback: clitoris gel
  449. Pingback: slovari imen
  450. Pingback: apple wholesale
  451. Pingback: http://xruporn.com
  452. Pingback: notehub.org
  453. Pingback: follow this post
  454. Pingback: follow this post
  455. Pingback: notehub.org
  456. Pingback: notehub.org
  457. Pingback: Kinky Toys
  458. Pingback: click for details
  459. Pingback: notehub.org
  460. Pingback: Giant Dildo
  461. Pingback: aflamneeksex
  462. Pingback: mp3 download
  463. Pingback: برامج
  464. Pingback: notehub.org
  465. Pingback: Ben Wa Balls
  466. Pingback: giant sex toys
  467. Pingback: xlxx porn
  468. Pingback: Cheap Web Hosting
  469. Pingback: pet benadryl
  470. Pingback: สมัครm88
  471. Pingback: Buy kona coffee
  472. Pingback: PhillyBite
  473. Pingback: Kona coffee brands
  474. Pingback: atlanta bail bond
  475. Pingback: سكس
  476. Pingback: Kona coffee brands
  477. Pingback: junk car buyer
  478. Pingback: app for laptop
  479. Pingback: escape room athens
  480. Pingback: Frozen Food
  481. Pingback: Abraaj
  482. Pingback: purple hoverboard
  483. Pingback: Videography
  484. Pingback: hosting
  485. Pingback: ninebot
  486. Pingback: Cbd
  487. Pingback: Lesbian Clit Vibe
  488. Pingback: beginners bondage
  489. Pingback: electric bike
  490. Pingback: where to buy phenq
  491. Pingback: iptv admin panel
  492. Pingback: seo service
  493. Pingback: Biz Carlton
  494. Pingback: IT Support
  495. Pingback: free phone cases
  496. Pingback: 818-884-8400

Comments are closed.