miércoles, 16 de abril de 2008

Conectar DBDesigner4 a una base de datos en MySQL

Este artículo pretende explicar como conectar DBDesigner4 a una base de datos que se encuentra en MySQL, así como resolver algunos de los problemas con los que nos podemos encontrar. Esta guía, ha sido probada en Debian Lenny y Ubuntu 7.10 Gutsy Gibbon.

Si no cuentas con DBDesigner4 instalado, puedes visitar este post.

Abriremos nuestro DBDesigner4 y una vez abierto deberemos ir a su menú y seleccionar las opciones Database -> Connect to Database.


Se presentará la siguiente pantalla donde presionaremos el botón "New Database Connection":


Ahora aparecerá una ventana donde deberemos ingresar los datos de nuestra base de datos y presionaremos "OK".


Se agregó la conexión a nuestra ventana de selección de conexiones de base de datos. Seleccionaremos la conexión que acabamos de crear y presionaremos el botón "Connect" para intentar conectarnos a la base de datos.


En mi caso, me aparece un error que dice lo siguiente:

Connection to database failed

Unable to Load libsqlmy.so



Cerramos el mensaje de error y podremos solucionarlo de dos formas. La primera, es crear un enlace simbólico del archivo libsqlmy.so al directorio /usr/lib/ como usuario root.

$ ln -s /ruta/de/DBDesigner4/Linuxlib/libsqlmy23.so.1.0 /usr/lib/libsqlmy.so

La otra manera será editar el archivo /etc/profile y agregar la siguiente línea:

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/ruta/de/DBDesigner4/Linuxlib/

en mi caso:

$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/DBDesigner4/Linuxlib/

Para que funcione correctamente ésto, deberemos reiniciar nuestro ambiente gráfico o nuestra máquina.

Hecho lo anterior, volveremos intentar conectarnos a la base de datos, seleccionando la conexión que creamos, ingresar el password y presionando el botón "Connect", donde lo más seguro es que nos aparezca el siguiente error:

Connection to database failed
Unable to Load libmysqlclient.so


Cerramos el mensaje y ara resolver este problema haremos lo siguiente como usuario root:

$ apt-get install alien
$ wget ftp://ftp.wesmo.com/pub/contributed/RPMS/MySQL-shared-compat-4.1.9-0.i386.rpm
$ alien -i MySQL-shared-compat-4.1.9-0.i386.rpm

Lo anterior que hicimos fue instalar el paquete alien para poder instalar el paquete RPM que bajamos con el comando wget y posteriormente ejecutamos el comando alien para instalar el paquete RPM que bajamos.

Ahora editaremos el archivo DBConn_DefaultSettings.ini con el editor de texto de nuestra preferencia. Este archivo es creado dentro del directorio .DBDesigner4 en el HOME del usuario que ejecuta DBDesigner4. Por ejemplo, en mi caso el archivo se encuentra situado en:

/home/javoaxian/.DBDesigner4/DBConn_DefaultSettings.ini

Una vez abierto el archivo, buscamos las siguientes líneas:

[MySQL]
DriverName=MySQL
GetDriverFunc=getSQLDriverMYSQL
LibraryName=dbexpmysql.dll
LibraryNameLinux=libsqlmy.so
VendorLib=LIBMYSQL.dll
VendorLibLinux=libmysqlclient.so
TableScope=[tsTable, tsView, tsSysTable]
ErrorResourceFile=
ErrorResourceFileLinux=
HostName=localhost
User_Name=root
Password=
Database=test
BlobSize=-1
LocaleCode=0000

Y cambiaremos la línea:

VendorLibLinux=libmysqlclient.so

por lo siguiente:

VendorLibLinux=libmysqlclient.so.10

Para que surtan efecto estos cambios, deberemos cerrar y abrir nuevamente DBDesigner4. El cambio que acabamos de realizar no servirá para la conexión que creamos al principio, por lo cual borraremos está conexión presionando con el botón derecho sobre la conexión y eligiendo la opción "Delete Connection".


Se nos preguntará si estamos seguros de borrar la conexión, y presionaremos "Yes".


Ahora volveremos a crear una nueva conexión presionando en el botón "New Database Connection" y deberemos de llenar los datos que se nos solicitan.

Una vez creada la conexión, intentamos nuevamente conectarnos a la base de datos con la nueva conexión que creamos seleccionandola, ingresando el password y presionando el botón "Connect". Es posible que nos aparezca el siguiente error:

Connection to database failed

dbExpress Error: Invalid
Username/Password

Cerramos el mensaje de error. Este error es ocasionado ya sea porque no ingresamos el Username o el Password del usuario de la base de datos correctamente y otra opción es porque DBDesigner4 utiliza el algorítmo viejo de MySQL para cifrar el password, por lo tanto, deberemos hacer un cambio en MySQL. Dicho cambio consiste en convertir el password del usuario usando el algoritmo viejo de MySQL. Para hacer esto, deberemos conectarnos a MySQL como el usuario root

Por ejemplo:

$ mysql -u root -p mysql

y ejecutar lo siguiente cambiando PASSWORDELUSUARIO por el password que tenga el usuario y USERNAMEDELUSUARIO por el Username o nombre de usuario de la base de datos:

mysql> UPDATE mysql.user SET PASSWORD=OLD_PASSWORD('PASSWORDELUSUARIO') WHERE user='USERNAMEDELUSUARIO';
mysql> flush privileges;

En mi caso quedaría de la siguiente manera:

mysql> UPDATE mysql.user SET PASSWORD=OLD_PASSWORD('MiPassword') WHERE user='javoaxian';
mysql> flush privileges;

De nuevacuenta, intentaremos conectarnos a la base de datos seleccionando la conexión, ingresando el password y presionando el botón "Connection". Esta vez no nos deberá mandar ningún error la aplicación, lo que nos indica que ya estamos conectados.

Para desconectarnose de la base de datos, iremos al menú de DBDesigner4 y elegiremos la opción: Database -> Disconnect from Database.


Por último, si usan la opción: Display -> Query Mode y realizan una consulta, puede que les mande el siguiente error:

ERROR while executing Query:

select .....

ERROR Message:
libmidas.so.1: no se puede abrir el fichero del objeto compartido: No existe el fichero o el directorio

Para resolver esto deberemos crear un enlace simbólico del archivo libmidas.so.1.0.

$ ln -s /ruta/de/DBDesigner4/Linuxlib/libmidas.so.1.0 /usr/lib/libmidas.so.1

En mi caso:

$ ln -s /opt/DBDesigner4/Linuxlib/libmidas.so.1.0 /usr/lib/libmidas.so.1

En mi caso trabaja un poco raro cuando uso el Query Mode con bases de datos que ya tienen tablas, y parte es que no lo he provado mucho ya que uso otro cliente para hacer los query's necesarios en mis bases de datos.

Ésto es todo por el momento, saludos.

8 comentarios:

janitamv dijo...

... uf!! no sabes cuanto me han salvado este y todos tus post relacionados con DBdesigner4 te lo agradezco infinitamente!!!

PD: funciono todo perfecto despues de horas de sufrimiento,(uso fedora core5 por si ak)

javoaxian dijo...

Me da gusto que te hayan servido y gracias por el dato de que pudiste instalarlo en tu Fedora Core 5.

Saludos!!!

Anónimo dijo...

El error de libmysqlclient.so, aun modificando el archivo para que sea libmysqlclient.so.10, me sigue saliendo.
Igualmente yo en /usr/lib no tengo libmysqlclient.so.10, sino, .15; pero tambien al canviarlo por libmysqlclient.so.15 sigue dando el error.

javoaxian dijo...

He probado con esa versión de libmysqlclient y tampoco funciona, quiza haya un cambio en la biblioteca por lo que no se puede conectar, seguré buscando.

Saludos!!!

.:**eViZ**:. dijo...

Hola!
Lograste ver si hubo algun cambio en la biblioteca ? Porque me sucede lo mismo que el comentario anterior. He seguido cada uno de los pasos y aun me sale el mensajito "unable to load libsqlmy.so"

Gracias

Víctor Efrén dijo...

Algo viejo el post pero me acaba de ayudar muchisimo, no podia solucionar lo del dbExpress Error

El comment no es por revivir un post viejo sino para agradecerte por el trabajo hecho

Alex dijo...

He escuchado sobre un programa. El ha sido en un sitio con los softwares - reparar base sql 2000. El programa ha terminado mis problemas muy con facilidad y de balde. Todavia sobre este programa mis amigos han estado contento de este utilidad. Ellos han dicho que con ayuda del instrumento ha economizado el tiempo. El utilidad ha demostrado sus posibilidades en guardar los datos de salidas como un solo archivo .pst o como un grupo de archivos .eml, .vcf y .txt.

Carlos dijo...

Que tal amigos, ya es segunda vez, que salgo de un apuro con javoaxian, mil gracias, pero aun no termino de salir de este.
Estaba haciendo todo los pasos, pero cuando me toco bajar el archivo de la pagina wesmo, RPMS/MySQL-shared-compat-4.1.9-0.i386.rpm no me deja o lo baja vacío, por error de autenticación. me pide un usuario y contraseña, le doy a Enter y me lo baja vacío. Estoy buscando el archivo en otro sitio pero no lo consigo. Que me sugieren?
Gracias de antemano.