28 septiembre 2010

MySQL ODBC de 32 bits en Win7 de 64 bits

Actualización: en la versión Connector/ODBC 5.1.8 32-bit ya no es necesario registrar manualmente el controlador en Windows 7 de 64 bits, dado que el paquete de instalación ahora se registra correctamente.
Algunas veces, los cambios no son tan simples como quisieramos pensar...

Tomemos por ejemplo al usuario que adquiere un equipo nuevo de 64 bits y con él el novedoso y "muy seguro" Windows 7. Hasta acá todo bien, pues la mayoría de aplicaciones de 32 bits se ejecutarán de manera transparente gracias al emulador de Windows para aplicaciones de 32 bits.

Sin embargo, algunos programitas requieren un poco más de esfuerzo, por ejemplo, el Connector ODBC de MySQL. Ya que el programa de instalación de 32 bits, sea este MSI o EXE no permitirá su instalación.

¿Por qué es necesario instalar MyODBC 32-bit? simplemente porque el desarrollo interno no se mueve al mismo ritmo que el resto de la industria de software, y muchas son las aplicaciones al rededor del mundo que se desarrollaron en herramientas como VB6 (y dado que aun funcionan, no hay necesidad inmediata de cambiarlas, o al menos así piensa la mayoría de empresas).

En el Windows de 64 bits tenemos dos carpetas adicionales, que son:

X:\Program Files (x86)
X.\Windows\SysWOW64


La conocida carpeta System32 es utilizada ahora para las aplicaciones de 64 bits, mientras que la carpeta para las aplicaciones de 32 bits pasa a ser SysWOW64.

Pasos para instalar el ODBC de MySQL en Win7 64-bit

1) Obtener del sitio de descargas de MySQL el ODBC no instalable (es decir, en archivo ZIP)

mysql-connector-odbc-noinstall-5.1.7-win32.zip

2) Desempaquetar el contenido del archivo descargado

3) Modificar el archivo "Install.bat", agregando la ruta a SysWOW64 en las partes resaltadas.

SET installdir=none
IF EXIST %windir%\system\nul SET installdir=%windir%\system
IF EXIST %windir%\system32\nul SET installdir=%windir%\system32
IF EXIST %windir%\SysWOW64\nul SET installdir=%windir%\SysWOW64
IF %installdir%==none GOTO :doError5

ECHO Registering driver
C:\Windows\SysWOW64\myodbc-installer -d -a -n "MySQL ODBC 5.1 Driver" -t "DRIVER=myodbc5.dll;SETUP=myodbc5S.dll"

4) Abrir el símbolo del sistema (consola) como administrador (clic derecho, opción "Ejecutar como Administrador")

5) Ejecutar el archivo "Install.bat".

Cabe mencionar, que para ver los orígenes de datos de 32 bits tendremos que recurrir al archivo "odbcad32.exe" que se encuentra en la carpeta SysWOW64.

9 comentarios:

  1. Hola mi nombre es Julissa, sabes realice los pasos que detallaste pero al ejecutar me manda un error que dice Error Connector/odbc not buit.

    Lo edite y lo trate de correr desde una carpeta de mis documentos, no se si eso tiene algo q ver. Gracias

    ResponderBorrar
  2. La primera vez que lo intenté, lo hice desde el Escritorio y tuve el mismo inconveniente.

    En el archivo "bat" como podrás ver, el error 2 es cuando no puede ubicar los archivos de la carpeta "lib" o "bin" que desempaquetamos.

    ResponderBorrar
  3. con la version 5.1.8 anda de 10, 2 dias renengando ....

    ResponderBorrar
  4. Les comento que tengo una aplicacion que corre en la version 3.51.12 y probando logre instalar como Mario indica la version 5.1.7.
    Luego instale la 3.51.12(que es la que mi sistema necesita) llamo a la configuracion del odbc desde donde el indica mario en el tuto(C:\windows\SysWOW64\odbcad32.exe).
    Creo el odbc con la version 3.51.12 desde ahi, y todo funciona de maravilla en 64 bits.

    ResponderBorrar
  5. Les comento que tengo una aplicacion que corre en la version 3.51.12 y probando logre instalar como Mario indica la version 5.1.7.
    Luego instale la 3.51.12(que es la que mi sistema necesita) llamo a la configuracion del odbc desde donde el indica mario en el tuto(C:\windows\SysWOW64\odbcad32.exe).
    Creo el odbc con la version 3.51.12 desde ahi, y todo funciona de maravilla en 64 bits.

    ResponderBorrar
  6. Hola, tengo una pregunta.

    Hay alguna forma de generar un .bat para que cuando lo corra se configure automáticamente una conexión en Mysql? sin tener que usar el configurador de base de datos de windows.

    esto me ayudaría a administrar las conexiones ya que como son varios ordenadores queda dificil pasar uno por uno.

    Gracias de antemano.

    ResponderBorrar
  7. Aunque no es una buena practica usar DSN para conectarse a una base de datos, y dado que dicha informacion se guarda en el registro de Windows, es posible exportar el nodo correspondiente para trasladar una conexion de un equipo a otro

    Esto puede verse en alguna de las siguientes rutas, la segunda corresponde a una conexion DSN de 32 bits en un equipo de 64

    HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI
    HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\ODBC\ODBC.INI

    Cuando se configura un DSN se crea un valor dentro de la clave ODBC Data Sources, y una clave con el nombre que se asigno al DSN

    ResponderBorrar
  8. muchas gracias por ese aporte saludos

    ResponderBorrar
  9. estuve buscando una solución casi 2 días, pero hice lo que indico Mario lineas abajo y funco a la perfección la instalación del conector mysql .

    ResponderBorrar