Instalar PostgreSQL y pgAdmin 3 en GNU/Linux PostgreSQL es un potente DBMS (Administrador de base de datos) pero al instalarlo solo contamos con el servicio de base de datos, el "core" y para administrarlo se utilizan comandos en consola. Para hacer un poco mas amigable la administración se utiliza el entorno integrado pgAdmin 3. Bien ahora procederemos a instalarlo y configurarlo. a) Desde el sitio de PostgreSQL descargamos la nueva versión del software. b) Instalamos desde las fuentes: sudo tar -zxvf postgresql-8.2.4.tar.gz cd postgresql-8.2.4 sudo ./configure Si sale un error en la configuración probar con las opciones de configure: sudo ./configure --without-[opcion] Luego: sudo make sudo make install Crear un directorio donde se almacenaran los datos: sudo mkdir /usr/local/pgsql/data Luego debemos crear un usuario para el DBMS, como ya existe uno en el /home/, por ejemplo /home/juan le vamos a dar permisos de grupo al directorio creado: sudo chown juan /usr/local/pgsql/data Dejamos de ser super-usuario y volvemos como humano mortal: su - juan y por ultimo hacemos: /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data Para arrancar el servidor hacemos como humano mortal: /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data Para detenerlo: CTRL + C Listo, el servidor ya esta a punto! Solo falta instalar pgAdmin 3 sudo apt-get install pgadmin3 Ir al menú de aplicaciones, arrancar el pgAdmin 3 y hacer una nueva conexión a servidor, en dirección poner localhost, en usuario "juan" (es solo el ejemplo, tenes que poner tu nombre de usuario) y aceptar. Inicialización de Postresql 8.3 en Debian Lenny 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 instalábamos y estaba lista a funcionar, error mío, luego de varias lecturas plasmo acá lo que hice para poder trabajar con esta herramienta. Instalación de Postgresql Para este artículo se usará la versión de Postgresql empaquetada en los repositorios de Debian/lenny, en nuestro caso, la versión 8.3. Para comprobar la versión disponible en tus repositorios se puede recurrir a apt-cache search: [bolpiilinux2:/#] apt-cache search postgresql-server aolserver4-nspostgres - AOLserver 4 module: Postgres connector bacula-director-pgsql - network backup, recovery and verification PostgreSQL storage for Director ... yate-pgsql - Postgresql module for yate zabbix-server-pgsql - software for monitoring of your networks -server postgresql-8.3 - Base de datos SQL objeto-relacional, versión 8.3 del servidor La búsqueda devuelve gran cantidad de resultados. Para nuestros propósitos son especialmente útiles los paquetes: apt-get install postgresql-8.3 postgresql-contrib-8.3 Inicialización de Postgresql Ahora tenemos que inicializar y configurar nuestra instalación de PostgreSQL antes de poder empezar a crear nuestra base de datos. Tenemos creado nuestro usuario "postgres" por defecto sin clave de acceso. Esto significa que la única 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 postgresql". "cluster [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. También, ver como podemos configurar PostgreSQL para sacar el máximo provecho a esta magnifica base de datos, si alguien 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 podéis utilizar en psql para que podáis 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:/#]#