Ir al contenido


Foto

can not load default mysql library libmysql.dll


  • Por favor identifícate para responder
4 respuestas en este tema

#1 LARRY30001

LARRY30001

    Newbie

  • Miembros
  • Pip
  • 3 mensajes

Escrito 29 julio 2018 - 09:04

Saludos a la comunidad. Soy nuevo en lazarus, tiempo atrás trabajé con delphi y firebird y todo bien. Ahora con lazarus al colocar en el form el ícono MySQL57Connection1 y hacer clic en la propiedad Connected para pasar a TRUE, se visualiza un error: can not load default mysql library libmysql.dll. Al hacer aceptar al mensaje de error, esta propiedad vuelve a FALSE.

 

Tengo Mysql versión 5.7 64 bits, windows 10 64 bits. Lazarus 32 bits (no sé si existe para 64 bits).

 

La dll en cuestión existe, y la he copiado en todas las carpetas (system 32, carpeta del proyecto en lib, en la carpeta lazarus aunque no tiene carpeta lib o bin), según lo indicado en la web, pero sigue igual.

 

En un primer momento iba a utilizar postgresql (la versión 9.6) y me dió el mismo error, según lo revisado puede ser el componente que servía hasta la versión 6 de postgresql. Así mejor lo cambié por Mysql versión 5.7 (que existe en los componentes), pero me da el mismo error.

 

 

 

 

Se agradecerá mucho sus observaciones,  de antemano muchas gracias.


  • 0

#2 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.290 mensajes
  • LocationArgentina

Escrito 29 julio 2018 - 09:38

Saludos a la comunidad. Soy nuevo en lazarus, tiempo atrás trabajé con delphi y firebird y todo bien. Ahora con lazarus al colocar en el form el ícono MySQL57Connection1 y hacer clic en la propiedad Connected para pasar a TRUE, se visualiza un error: can not load default mysql library libmysql.dll. Al hacer aceptar al mensaje de error, esta propiedad vuelve a FALSE.

 

Tengo Mysql versión 5.7 64 bits, windows 10 64 bits. Lazarus 32 bits (no sé si existe para 64 bits).

 

La dll en cuestión existe, y la he copiado en todas las carpetas (system 32, carpeta del proyecto en lib, en la carpeta lazarus aunque no tiene carpeta lib o bin), según lo indicado en la web, pero sigue igual.

 

En un primer momento iba a utilizar postgresql (la versión 9.6) y me dió el mismo error, según lo revisado puede ser el componente que servía hasta la versión 6 de postgresql. Así mejor lo cambié por Mysql versión 5.7 (que existe en los componentes), pero me da el mismo error.

 

 

 

 

 

Se agradecerá mucho sus observaciones,  de antemano muchas gracias.

 

Bienvenido LARRY30001 a DelphiAccess, como eres nuevo te pido unos minutos para leer la normas y sugerencias. Por poco vuelo este hilo al verlo titulado en inglés pensando en que era un spam.

 

Yo recientemente he actualizado mi SO a Win10 y aún no he vuelto a instalar CodeTyphon por falta de tiempo como para probar lo que comentas.

Recuerdo que en el foro se ha discutido antes el tema (aunque mi vaga memoria me decía que sucedía con la suite Zeos), y la cosa pasa por emplear la versión bitness adecuada, no sólo de tenerlo en el directorio que comentas. Si utilizas Lazarus 32bits, y MySQL es 64bits, lo de esperar es que hagas uso de la versión WOW de dicha dll, y/o que la dll esté en la carpeta syswow.

 

Consultado vagamente y rapido en la wiki de Lazarus, encontré al respecto:

 

You should check MySQL documentation to make sure the combination between client version and server version is supported - e.g. you may well have problems connecting to a 4.0 server using a 5.x client.

In all cases put a copy of libmysql.dll and any other required files/dlls

  • in your Lazarus directory and the same directory as your project files or
  • in the Windows system directory (if you don't want to keep copying files). Note that on 64 bit Windows you have to put the 32 bit library in SysWOW64, while 64 bit libraries go into System32.

 

Te invito a leer esto, y esto que puede serte de ayuda. Para irte familizando un poco más.

Otros compañeros mientras tanto puede que te sepan dar una mano más certera hasta que pueda darme algo de tiempo de probar por mi cuenta.

 

Saludos,


  • 1

#3 LARRY30001

LARRY30001

    Newbie

  • Miembros
  • Pip
  • 3 mensajes

Escrito 29 julio 2018 - 10:22

Muchas gracias por responder, estoy revisando los temas que indicas, desde ya gracias nuevamente.


  • 0

#4 LARRY30001

LARRY30001

    Newbie

  • Miembros
  • Pip
  • 3 mensajes

Escrito 30 julio 2018 - 10:21

Saludos. He podido solucionar el problema: no puede carga la dll. Para mysql tuve que desinstalar lazarus y volver a instalarlo pero con la versión de 64 bit, y funciono de forma correcta. Para postgresql en la opción variables del sistema en windows en la variable path agregue la carpeta de postgres quedando así: C:\Program Files\PostgreSQL\9.6\bin

 

He podido notar que en el caso de postgresql  tengo instalada la versión 9.6 por tanto lazarus si puede trabajar con esa versión.

 

Según lo que tengo instalado estas tres herramientas son de 64 bits. En realidad no sé si debería ser así, creo que debe haber compatibilidad entre 32 y 64 bits.

 

Desde ya muchas gracias, quedo atento.


  • 0

#5 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.290 mensajes
  • LocationArgentina

Escrito 31 julio 2018 - 05:58

Firebird permite desde un 32bits acceder a uno de 64bits, como su inversa. En principio, no debería de haber impedimento de que pueda hacerse lo mismo con el resto de los motores.

Como he comentado, lo importante es apuntar a la versión bittness correcta. ¿Colocaste la dll 32bits en SysWOW64? ¿O en su contraparte, la de 64bits en System32?

Se me hace que el problema tuyo podría resolverse de una forma menos tortuosa.

Tu problema radica en un conflicto de bittness y de infierno de dll. Con los recaudos necesarios, y evitando las prisas, seguramente podrías resolverlo.

 

Saludos,


  • 0