Instalación rápida de PostgreSQL para Windows

Los siguientes son los pasos seguidos para instalar PostgreSQL bajo Windows en una unidad US

1. Descargar y descomprimir el archivo postgresql-8.3.1-1-binaries-no-installer.zip.

2. Mover el directorio pgsql a la unidad USB, g: para este ejemplo.

3. Crear el directorio g:pgsqldata.

4. Crear el repositorio de datos inicial.

dos> g:pgsqlbininitdb -D g:pgsqldata

5. Editar el archivo de configuración de acceso para permitir las conexiones externas.

dos> notepad g:pgsqldatapg_hba.conf

# Allow any user on the local system to connect to any database under
# any database user name using Unix-domain sockets (the default for local
# connections).
#
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
local   all         all                               trust

# The same using local loopback TCP/IP connections.
#
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
host    all         all         127.0.0.1/32          trust

host    all         all         0.0.0.0/0             md5

6. Editar el archivo de configuración de la base de datos para permitir conexiones a través de TCP/IP y SSL.

dos> notepad g:pgsqldatapostgresql.conf

listen_addresses = '*'
authentication_timeout = 1min		# 1s-600s
ssl = on				# (change requires restart)
ssl_ciphers = 'ALL:!ADH:!LOW:!EXP:!MD5:@STRENGTH'	# allowed SSL ciphers

7. Crear la llave primaria del servidor (server.key) y el certificado SSL (server.crt). Para esto es necesario contar con la distribución de OpenSSL y su directorio g:OpenSSLbin (o donde haya sido instalado) incluído en la variable de ambiente PATH. Tengase en cuenta que este paso es opcional y sólo deberá ejecutarse si se desea establecer el soporte para conexiones SSL con el motor de base de datos (ver parámetro ssl en el paso #6).

dos> cd g:pgsqldata
dos> openssl req -new -text -out server.req
PEM pass phrase: ***CLAVESECRETA***
Country Name (2 letter code) [AU]: CO
State or Province Name (full name) [Some-State]: Caldas
Locality Name (eg, city) []: Manizales
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Personal Development
Organizational Unit Name (eg, section) []: Sistemas
Common Name (eg, YOUR name) []: jorgeivan
Email Address []: jimezam@gmail.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Ténganse en cuenta las siguientes consideraciones para especificar los datos mencionados anteriormente.

  1. La frase PEM (***CLAVESECRETA***) es una contraseña de seguridad del certificado, elíjala de acuerdo a sus criterios de seguridad.
  2. Los valores de los campos Country Name, State Name, Locality Name, Organization Name, Organizational Unit Name e Email Address son informativos y deben personalizarse según su propio contexto.
  3. El campo Common Name debe corresponder con el hostname de la máquina que tendrá el certificado (importante).
  4. El Challenge Password y el Optional Company Name pueden obviarse (dejarse en blanco).

La llave generada se encuentra protegida con contraseña, para removerla y permitir el inicio automático del motor de base de datos junto con el sistema operativo se debe realizar la acción siguiente.

dos> openssl rsa -in privkey.pem -out server.key

PEM pass phrase: ***CLAVESECRETA***

dos> del privkey.pem

Para firmar (self-signed) el certificado recién creado ejecutar la acción siguiente.

openssl req -x509 -in server.req -text -key server.key -out server.crt

8. Iniciar el motor de base de datos.

dos> postgres -i -D g:pgsqldata

Si se desea redireccionar los mensajes de la base de datos a un archivo de log se deben agregar las siguientes modificaciones.

dos> postgres -i -D g:pgsqldata >logfile 2>&1

Si se desea enviar el proceso del motor de base de datos a background se debe anteponer el comando start de Windows.

dos> start postgres -i -D g:pgsqldata >logfile 2>&1

9. Modificar la contraseña de acceso del usuario de administración del motor de base de datos.

dos> psql -h 127.0.0.1 -c "ALTER USER USUARIO WITH PASSWORD 'CONTRASEÑA'" -d template1

Téngase en cuenta que debe reemplazarse a USUARIO con el nombre de usuario bajo el cual se ejecuta la base de datos, el mismo con el que se ejecutó initdb y postgres, así como CONTRASEÑA con la contraseña escogida para ese usuario.

10. Crear una base de datos.

dos> createdb.exe base_de_datos

11. Prueba de conexión a la base de datos.

dos> psql -W -U USUARIO base_de_datos

Enlaces de interés: