Blog de Abelardo Jara Berrocal: Ubuntu, electronica y software libre

Noviembre 19, 2007

JDBC y PostgreSQL para usar con OpenOffice Base

Archivado en: Linux Ubuntu Administracion — Abelardo Jara @ 9:46 pm

Primero necesitamos tener instalada Java y Postgres en Ubuntu (el servicio Postgres tambien tiene que estar iniciado y configurado), asi que prueba esto antes de seguir estos pasos:

1. Baja el Driver JDBC de Posgresql segun su version en :

http://jdbc.postgresql.org/download.html

Aqui tenes que bajar el apropiado para tu version, la distribucione actual de Ubuntu traen Posgresql version 8.2, asi que bajate el driver para tu version, es un archivo que termina en .JAR

Nota 1: Guarda el driver en una carpeta que no borres como
/usr/local/lib/OpenOffice/jdbc/postgresql algo asi

2. Abri el OpenOffice 2.x desde OpenOffice Writer

3.Anda a la Opcion “Herraminetas”, Luego a la Opcion “Opciones”

4. Lo anterior te va a abrir un cuadro de dialogo, busca la rama de ese dialogo que dice “OpenOffice.org”, segun creo es la primera Rama que aparece,dentro de esa rama busca la subrama que dice “Java”.

5. Cuando Abras la rama Java el OpenOffice se tarda unos segundos en descubrir tu instalacion JDK actual, y te apareceran las maquinas virtuales instaladas, selecciona la version 1.6 (la ultima en Ubuntu Gutsy)

6. En la parte derecha te aparecera un boton que dice “Class Path”, presionalo y te aparecera un cuadro de dialogo.

7. En la parte derecha de ese dialogo te aparecera el Boton que dice “Agregar archivo”, presionalo

8. Te aparece un cuadro de dialogo de Archivos , ahi busca el Jar file que bajastes en 1 llamado: pgALGO.jar, y dale Abrir.

9. Luego de eso veras que tu JDBC Driver aparece en el cuadro de dialogo de “Class Path”, si eso es cierto vas por buen camino. Presiona OK.

10. Luego Presion OK en el Cuadro de Dialogo de la Rama Java.

11. Con los pasos hasta el punto diez tenes configurado solo Java y JDBC para tu Base de datos en este caso Postgresql,

Puedes repetir los pasos del 1-10 para otras bases de datos como Mysql u Oracle o SQLite o cualquier otra base que tenga soporte para JDBC.

12. Cerramos Openoffice Writer. Ahora iniciamos  OpenOffice Base (el programa de bases de datos de Open Office). Te abrira un cuadro de dialogo.

13. En el Primer paso de ese “Database Wizard” selecciona “Connect to an existing Database”, luego en el combox que aparece abajo de esta opcion selecciona “JDBC”, dale luego el boton “Next”.

14. Te aparece otro dialogo que te pregunta por el “JDBC URL” ahi ingresa algo parecido a lo siguiente:

La formula general para URL de JDBC de Postgresql es:

jdbc:postgresql://aqui_pone_la_ip_o_nombre_de_tu_maquina_con_la_base:aqui_pone_el_puerto_de_tu_base_regularmente_5432/aqui_pone_el_nombre_de_la_base_ya_creada_en_postgresql

Un ejemplo de URL de JDBC en mi caso es :
jdbc:postgresql://localhost:5432/pintuco

15. En el Mismo cuadro de dialogo te pregunta por “JDBC Driver Class”, esta varia de base de datos a base de datos, en el caso de Postgresql es:

org.postgresql.Driver

Para ver que te carge el driver correctamente presiona el boton “Test Class”, si te responde con un cuadro de dialogo que dice “JDBC Driver Test The JDBC Driver was loaded successfully” entonces todo va bien. De lo contrario hicistes algo mal en cualquier punto entre 5 y 10 es conveniente corregir si es el caso.

16. Luego presiona “Next”

17.A continuacion te va a preguntar tu usuario de la base de datos ingresa el apropiado, en mi caso “pintuco”, chequea la opcion que dice “Pasword required”, y presiona next.

18. Te aparece otro cuadro de dialogo, las opciones por default estan bien.

19. Presiona Finish, Te abrira un cuadro de dialogo de archivo (esto es no para guardar la base sino para guardar los settings de la conexion), ponele el nombre de la base en mi caso “pintuco”

20. Presiona Save.

21. Te aparecera una Forma ya para trabajar en tu base, selecciona por ejemplo, “Tables”, luego el OpenOffice te pedira el password para tu usuario de la Base, daselo.

22. Presiona OK y deberian aparecerte las tablas listas para editar.

23. Si no se conecta revisa los settings de Postgresql en pg_hba.conf y postgresql.conf

Si no sabes donde estan estos archivos tipeas en consola:

locate pg_hba.conf

locate  postgresql.conf

24. Ah y esto es muy importante, no podras editar tus tablas  a menos que tengan una clave primaria. (ojo)

UNIX ODBC y PostgreSQL en Ubuntu Gutsy

Archivado en: Linux Ubuntu Administracion — Abelardo Jara @ 9:32 pm

Veremos aqui como podemos conectarnos mediante UNIX ODBC a una base de datos Postgres.

Primero instalamos UNIX ODBC.

sudo apt-get install unixodbc unixodbc-bin odbc-postgresql

Lo siguientes es que debemos instalar el driver para soporte ODBC al PostgreSQL

sudo odbcinst -i -d -f /usr/share/psqlodbc/odbcinst.ini.template

Este paso editara la lista de drivers que esta en el archivo /etc/odbcinst.ini

Luego ya podemos llamar al configurador de ODBC con:

sudo ODBCConfig

Y aparecera una ventana de configuracion casi idéntica al ODBC del Windows. Lo demas queda de ustedes :)

Iniciar un programa que tiene problemas con Compiz

Archivado en: Linux Ubuntu Administracion — Abelardo Jara @ 8:52 pm

Este truco es para iniciar cualquier programa nos de problema con el escritorio con efectos Compiz (y no queremos usar Metacity)

Se debe usar el comando:

XLIB_SKIP_ARGB_VISUALS=1 antes del programa a ejecutar, ello se puede especificar en el Editor de Menues o mediante un script de inicio:

Por ejemplo:

#!/bin/bash
cd /opt/DBDesigner4
XLIB_SKIP_ARGB_VISUALS=1 /opt/DBDesigner4/DBDesigner4

Instalando motor de bases de datos PostgreSQL

Archivado en: Linux Ubuntu Administracion — Abelardo Jara @ 6:50 pm

En Ubuntu disponemos paquetes para varias versiones de PostgreSQL: 7.4, 8.0, 8.1 y 8.2 de modo que instalaremos la última versión a no ser que necesitemos alguna anterior. Los paquetes necesarios para una instalación completa son los de la parte cliente (postgresql-client-8.2) y los de la parte servidora (postgresql-8.2). En un ordenador que usemos como cliente sólo necesitamos los paquetes del cliente. También es recomentable instalar un cliente gráfico que nos facilitará la interacción con el servidor. Un cliente gráfico recomendable es pgAdmin III, que funciona muy bien.

Si tienes dudas sobre que necesitas, puedes instalar los tres paquetes:

 $ sudo aptitude install postgresql-8.2 postgresql-client-8.2 pgadmin3

Nota: Recuerda remover cualquier version de postgresql que no necesites para no afectar el rendimiento de tu sistema.

Por razones de seguridad estableceremos la nueva contraseña al usuario del sistema creado por PostgreSQL:

 $ sudo passwd postgres

Cambiar los privilegios de acceso al shell del usuario postgres con el siguiente comando:

 $ sudo vipw

Y cambiamos el shell del usuario postgres de “/bin/false” a “/bin/bash”. Luego salimos grabando con escape “:wq”. Para verificar si la instalación fue satisfactoria accedemos a la shell del servidor de bases de datos:

 $ sudo su postgres -c "psql template1"

Si el acceso ha sido satisfactorio cambiamos la contraseña al usuario predeterminado del servidor de bases de datos:

 template1=# ALTER USER postgres WITH PASSWORD 'nueva_contraseña';

 

Configuración

Permitir conexiones remotas

Por motivos de seguridad, la configuración por defecto no admite conexiones externas. Para habilitarlas tenemos que editar el fichero /etc/postgresql/8.2/main/postgresql.conf.

$ sudo gedit /etc/postgresql/8.2/main/postgresql.conf

Ahora buscamos las siguientes líneas que se encuentran comentadas:

#listen_addresses = 'localhost'

Y la substituimos por la siguiente línea:

listen_addresses = '*'

Posteriormente buscamos la siguiente línea y le quitamos la marca de comentario:

#password_encryption = on

Y nos debe quedar lo siguiente:

password_encryption = on

Guardamos los cambios y reiniciamos el demonio para que los cambios surjan efecto:

$ sudo /etc/init.d/postgresql-8.2 restart

Configurar la lista de acceso

La configuración de la lista de acceso permite decirle a PostgreSQL qué método de autentificación usar y establecer relaciones de confianza para ciertas máquinas y redes. Hay que editar el fichero /etc/postgresql/8.2/main/pg_hba.conf:

$ sudo vi /etc/postgresql/8.2/main/pg_hba.conf

Al final del archivo se encuentra una lista de acceso predeterminada, ahora, dependiendo de su necesidad puedes hacer lo siguiente:

  • Si necesita que cualquier usuario se conecte por medio de una dirección IP en especifico, agregue al final la siguiente línea:
  • Si necesita que un usuario determinado se conecte a una base de datos determinada por medio de una dirección IP en especifico, agregue al final la siguiente línea:
host MyDataBase MyUser 192.168.1.4 255.255.255.0 md5
  • Guarda los cambios realizados en el archivo y reinicia el demonio para que los cambios surjan efecto:
$ sudo /etc/init.d/postgresql-8.2 restart

Gestion de usuarios

Los usuarios de PostgreSQL tienen un par de capacidades que definimos en su creación. Me explico: un usuario puede o no crear más usuarios y un usuario puede o no crear bases de datos. En el ejemplo que puedes ver a continuación creamos un usuario que no puede crear más usuarios (no es un administrador) pero puede crear más bases de datos. El modificador -P hace que nos pregunte por el password que le asignaremos al usuario. De otra manera el usuario se creará sin password.

$ createuser -A -d -P -h host -U usuario nuevo_usuario

Enter password for user "nuevo_usuario":

Enter it again:

Como acabo de comentar, existen usuario administradores (pueden crear otros usuarios). Como es lógico este comando debe ser ejecutado por un usuario con esa característica.

Análogamente podemos eliminar un usuario de esta forma:

$ dropuser -h host -U usuario usuario_borrar

Copia de seguridad

 

Para hacer una copia de seguridad de una base de datos tiene el siguiente comando:

$ pg_dump -h host -U usuario nombre_bd > nombrerespaldo.txt

Para hacer una copia de seguridad de todas las bases de datos PostgreSQL de un servidor, usa este escript:

 #!/bin/bash ## BEGIN CONFIG ##

 HOST=localhost

 BACKUP_DIR=tmp

 ## END CONFIG ##

if [ ! -d $BACKUP_DIR ]; then

   mkdir -p $BACKUP_DIR

 fi

POSTGRE_DBS=$(psql -h $HOST -U postgres -l | awk ' (NR > 2) && (/[a-zA-Z0-9]+[ ]+[|]/) && ( $0 !~ /template[0-9]/) { print $1 }');

for DB in $POSTGRE_DBS ; do

   echo "* Backuping PostgreSQL data from $DB@$HOST..."

   pg_dump -h $HOST -U postgres $DB > $BACKUP_DIR/pg_$DB.sql

 done

Virtualbox y los puertos USB

Archivado en: Linux Ubuntu Administracion — Abelardo Jara @ 5:32 pm

Intentando hacer andar VirtualBox en mi recientemente instalado Ubuntu 7.10 me encontre nuevamente con el problema de los USB. En las anteriores distros también tenia esta clase de problemas relacionados a los permisos de usos.

La solución era escribír en la consola:

sudo gedit /etc/udev/rules.d/40-permissions.rules

Y en donde dice:

SUBSYSTEM==”usb_device”, MODE=”0664″

cambia por

SUBSYSTEM==”usb_device”, MODE=”0666″

Reiniciaba y todo andaba, pero con mi Ubuntu 7.10 parece ser mas complicado. El error que me apareía era diferente:

Could not load the Host USB Proxy Service (VERR_FILE_

NOT_FOUND). The service might be not installed on the host computer.

Result Code: 0×80004005 Component: Host Interface: IHost {81729c26-1aec-46f5-b7c0-cc7364738fdb} Callee: IMachine {31f7169f-14da-4c55-8cb6-a3665186e35e}

Parece ser que por defecto en Gutsy viene desavilitado el soporte usbfs que es necesario para VirtualBox.
La solucion no es complicada, simplemente hay que editar el archivo mountdevsubfs.sh, aquí estan los pasos:

1) Entra a una terminal y teclea:

sudo gedit /etc/init.d/mountdevsubfs.sh

2) Ve hasta las lineas:

#
# Magic to make /proc/bus/usb work
#
#mkdir -p /dev/bus/usb/.usbfs
#domount usbfs “” /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
#ln -s .usbfs/devices /dev/bus/usb/devices
#mount –rbind /dev/bus/usb /proc/bus/usb

y dejalas así:

#
# Magic to make /proc/bus/usb work
#
mkdir -p /dev/bus/usb/.usbfs
domount usbfs “” /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644
ln -s .usbfs/devices /dev/bus/usb/devices
mount –rbind /dev/bus/usb /proc/bus/usb

3) Guarda y cierra gedit, en la misma consola escribe:

sudo /etc/init.d/mountdevsubfs.sh start

Y ya está, por lo menos eso a mi me funciono.

Blog de WordPress.com.