5/11/08

Inicialización de Postresql 8.3 en Debian Lenny

Doy por sentado que ya se instalo Postgresql, este trabajo se ha realizado sobre una distribución Debian/lenny, para Postgresql 8.3., con Kernel 2.6.26-1-686.
Por mucho tiempo estuve teniendo problemas para poder usar esta poderosa BD, por el simple hecho que no sabía que debía inicializarla, pensé que era como mysql que la instalabamos y estaba lista a funcionar, error mío, luego de varias lecturas plasmo acá lo que hice para poder trabajar con esta herramienta.

Inicialización de Postgresql

Ahora tenemos que inicializar y configurar nuestra instalación de PostgreSQL antes de poder empezar a crear nuetra base de datos.

Tenemos creado nuestro usuario “postgres” por defecto sin clave de acceso. Esto significa que la unica manera de convertirse en este usuario es siendo root y utilizando el comando su - postgres.

A continuación nos conectamos como el usuario postgres e inicializamos nuestro “cluster postgresql”.

[bolpiilinux2:/#] mkdir -p /var/pgsql/data
[bolpiilinux2:/#] chown postgres /var/pgsql/data
[bolpiilinux2:/#]# su - postgres

[bolpiilinux2:/#]# /usr/lib/postgresql/8.3/bin/initdb -E utf8 -U postgres -D /var/pgsql/data

The files belonging to this database system will be owned by user “postgres”.
This user must also own the server process.

The database cluster will be initialized with locale en_US.UTF-8.

fixing permissions on existing directory /var/pgsql/data … ok
creating subdirectories … ok
selecting default max_connections … 100
selecting default shared_buffers/max_fsm_pages … 32MB/204800
creating configuration files … ok
creating template1 database in /var/pgsql/data/base/1 … ok
initializing pg_authid … ok
initializing dependencies … ok
creating system views … ok
loading system objects’ descriptions … ok
creating conversions … ok
setting privileges on built-in objects … ok
creating information schema … ok
vacuuming database template1 … ok
copying template1 to template0 … ok
copying template1 to postgres … ok

WARNING: enabling “trust” authentication for local connections
You can change this by editing pg_hba.conf or using the -A option the
next time you run initdb.

Success. You can now start the database server using:

/usr/local/bin/postgres -D /var/pgsql/data
or
/usr/local/bin/pg_ctl -D /var/pgsql/data -l logfile start

Si tenemos nuestro sistema en español (que es mi caso) la salida de lo anterior será:

[bolpiilinux2:/#]# /usr/lib/postgresql/8.3/bin/initdb -E utf8 -U postgres -D /var/pgsql/data
Los archivos de este cluster serán de propiedad del usuario «postgres».
Este usuario también debe ser quien ejecute el proceso servidor.
El cluster será inicializado con configuración local es_BO.UTF-8.
La configuración de búsqueda en texto ha sido definida a «spanish».

corrigiendo permisos en el directorio existente /var/pgsql/data … hecho
creando subdirectorios … hecho
seleccionando el valor para max_connections … 100
seleccionando el valor para shared_buffers/max_fsm_pages … 24MB/153600
creando archivos de configuración … hecho
creando base de datos template1 en /var/pgsql/data/base/1 … hecho
inicializando pg_authid … hecho
inicializando dependencias … hecho
creando las vistas de sistema … hecho
cargando las descripciones de los objetos del sistema … hecho
creando conversiones … hecho
creando directorios … hecho
estableciendo privilegios en objetos predefinidos … hecho
creando el esquema de información … hecho
haciendo vacuum a la base de datos template1 … hecho
copiando template1 a template0 … hecho
copiando template1 a postgres … hecho

ATENCIÓN: activando autentificación «trust» para conexiones locales.
Puede cambiar esto editando pg_hba.conf o usando el parámetro -A
la próxima vez que ejecute initdb.

Completado. Puede iniciar el servidor de bases de datos usando:

/usr/lib/postgresql/8.3/bin/postgres -D /var/pgsql/data
o
/usr/lib/postgresql/8.3/bin/pg_ctl -D /var/pgsql/data -l archivo_de_registro start

Suponemos que vamos a tener todas nuestras bases de datos y ficheros relacionados con postgresql en el directorio /var/pgsql/data.

Mi siguiente paso, ver como podemos configurar/organizar nuestros discos de una mejor manera para conseguir la máxima seguridad y velocidad cuando utilicemos PostgreSQL en sistemas de producción. Tambien, ver como podemos configurar PostgreSQL para sacar el maximo provecho a esta magnifica base de datos, si alguién tiene algún material al respecto agradecería que pudiera compartirlo.

En estos momentos podemos arrancar nuestra base de datos postgresql y empezar a utilizarla sin problemas.

[bolpiilinux2:/#]# /usr/lib/postgresql/8.3/bin/pg_ctl -D /var/pgsql/data -l /var/pgsql/data/postgresql.log start

server starting

Si queremos parar PostgreSQL podemos utilizar el siguiente comando:

[bolpiilinux2:/#]# /usr/lib/postgresql/8.3/bin/pg_ctl -D /var/pgsql/data stop -m fast

waiting for server to shut down…. done
server stopped

Podemos empezar a utilizar la base de datos con el potentisimo cliente por linea de comandos que se instala por defecto, su nombre /usr/local/bin/psql:

[bolpiilinux2:/#]# /usr/local/bin/psql

Bienvenido a psql 8.3.4, la terminal interactiva de PostgreSQL.

Digite: \copyright para ver los términos de distribución
\h para ayuda de órdenes SQL
\? para ayuda de órdenes psql
\g o punto y coma («;») para ejecutar la consulta
\q para salir

postgres=#

Para conseguir una lista de los principales comandos que podeis utilizar en psql para que podais empezar a disfrutar de PostgreSQL, ejecutar el comando \?:

postgres=# \?

Aqui teneis algunos ejemplos de como utilizar este cliente :

postgres=# \l
Listado de base de datos
Nombre | Dueño | Codificación
———–+———-+————–
postgres | postgres | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8
(3 filas)

postgres=# CREATE DATABASE test001;
CREATE DATABASE

postgres=# \l
Listado de base de datos
Name | Owner | Encoding
———–+———-+———-
postgres | postgres | UTF8
template0 | postgres | UTF8
template1 | postgres | UTF8
test001 | postgres | UTF8
(4 rows)

postgres=# \c test001
Ahora está conectado a la base de datos «test001»..

test001=# CREATE TABLE testing(
id INTEGER NOT NULL,
name TEXT NOT NULL,
PRIMARY KEY (id));

NOTICE: CREATE TABLE / PRIMARY KEY will create implicit index “testing_pkey” for table “testing”
CREATE TABLE

test001=# \d
List de relaciones
Schema | Name | Type | Owner
——–+———+——-+———-
public | testing | table | postgres
(1 row)

test001=# \q

[bolpiilinux2:/#]#

Cualquier aporte bienvenido bigsmile .

No hay comentarios:

Mira #AntesQueSeaTarde completo

Echa un vistazo al Tweet de @NatGeo_la: https://twitter.com/NatGeo_la/status/792908992661950464?s=09