FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Validacion MySQL caching_sha2_password
Posts: 582
Joined: Fri Oct 07, 2005 02:17 PM
Validacion MySQL caching_sha2_password
Posted: Fri Nov 21, 2025 03:51 PM

Buen dia

Consulta FWH se conecta a MySQL usando: mysql_native_password (que hasta la 8.0 se soportaba, 8.4 esta desabilitado y 9.X ya no existe) o caching_sha2_password que ahora es el estandar por default, o soporta ambos sin problemas ??
Gracias

Enrrique Vertiz Pitta

Lima-Peru

xHb 1.23.1026X, Fwh 25.01, BCC74, MySQL 8.0.X, SQLLIB 1.9m
Posts: 410
Joined: Sun Jan 31, 2010 03:30 PM
Re: Validacion MySQL caching_sha2_password
Posted: Sun Nov 30, 2025 11:35 AM

Buen dia...

Pregunto .... est谩 previsto seguir con soporte a las nuevas versiones de mysql y mariadb con fivewin (FWCONNECT )

JONSSON RUSSI

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Validacion MySQL caching_sha2_password
Posted: Sun Nov 30, 2025 12:04 PM

Entiendo que las nuevas versiones deben mantener compatibilidad con versiones anteriores :idea:

regards, saludos

Antonio Linares
www.fivetechsoft.com
Posts: 1144
Joined: Mon Feb 05, 2007 07:15 PM
Re: Validacion MySQL caching_sha2_password
Posted: Sun Nov 30, 2025 11:25 PM

llevo mas de 25 a帽os desarrollando con MySql siempre hay compatibilidad desde FWH saludos!

Cesar Cortes Cruz

SysCtrl Software

Mexico



' Sin +- FWH es mejor "
Posts: 410
Joined: Sun Jan 31, 2010 03:30 PM
Re: Validacion MySQL caching_sha2_password
Posted: Mon Dec 01, 2025 01:02 AM

Buena noche...

La pregunta es por esta consulta...

"Consulta FWH se conecta a MySQL usando: mysql_native_password (que hasta la 8.0 se soportaba, 8.4 esta desabilitado y 9.X ya no existe) o caching_sha2_password que ahora es el estandar por default, o soporta ambos sin problemas ??"

y al no recibir respuesta,,, genere la consulta

Posts: 44158
Joined: Thu Oct 06, 2005 05:47 PM
Re: Validacion MySQL caching_sha2_password
Posted: Mon Dec 01, 2025 03:18 AM

La respuesta corta es: Depende totalmente de la librer铆a cliente (libmysql.dll o libmariadb.dll) que est茅s vinculando con tu aplicaci贸n FWH, no del c贸digo fuente de FiveWin en s铆.

FiveWin (y Harbour) act煤an como un "puente". Si tu aplicaci贸n usa una DLL antigua (de la 茅poca de MySQL 5.x), no podr谩 negociar caching_sha2_password y fallar谩 con MySQL 8.0+ (y definitivamente con 9.x).

Aqu铆 tienes el desglose t茅cnico de la situaci贸n y c贸mo solucionarlo:

1. El estado actual (FWH + MySQL 8/9)

  • mysql_native_password: Es el m茅todo "legacy". Las versiones antiguas de libmysql.dll (que muchos programadores de FiveWin siguen usando por costumbre) solo soportan este m茅todo.
  • MySQL 8.0: Lo soporta, pero no es el default.
  • MySQL 8.4: Est谩 deshabilitado por defecto (hay que reactivarlo en el my.ini).
  • MySQL 9.x: Ha sido eliminado.
  • caching_sha2_password: Es el est谩ndar moderno. Requiere un intercambio de claves RSA o una conexi贸n segura (SSL).
    • Para que FWH soporte esto, necesitas una libmysql.dll versi贸n 8.0 o superior, o el conector de MariaDB.
  • 2. 驴Soporta FWH ambos?

    S铆, pero solo si actualizas la DLL.

    FiveWin (a trav茅s de la clase TMySQL, TDolphin o ADODB) simplemente pasa las credenciales a la DLL.

    • Si usas una libmysql.dll antigua (v5.x): Solo funcionar谩 mysql_native_password. Tu app fallar谩 al conectar a un servidor MySQL 8+ con configuraci贸n default.
    • Si usas una libmysql.dll moderna (v8.x): Soporta ambos (native y caching_sha2).

    -----

    3. La Soluci贸n Recomendada: El Conector de MariaDB

    En la comunidad de Harbour/FiveWin, la soluci贸n est谩ndar de facto para conectar a MySQL 8.0, 8.4 y 9.X no es usar la DLL de Oracle MySQL, sino la de MariaDB, debido a que es m谩s compatible, ligera y maneja mejor la autenticaci贸n sin requerir instalaciones complejas de SSL en el cliente.

    Pasos para soportar caching_sha2_password en FWH:

    1. Descarga el MariaDB C Connector (archivo libmariadb.dll).
    2. Ren贸mbralo a libmysql.dll (o config煤ralo en tu c贸digo para cargar libmariadb.dll).
    3. Col贸calo junto a tu ejecutable (.exe).

    Esta librer铆a es capaz de conectar a servidores MySQL modernos usando los nuevos protocolos de encriptaci贸n sin cambiar tu c贸digo fuente PRG.

    4. Soluci贸n Alternativa ("Workaround" r谩pido para MySQL 8.0/8.4)

    Si no puedes cambiar la DLL de inmediato y necesitas que tu sistema funcione ya con un servidor nuevo (previo a la versi贸n 9.0), debes cambiar la configuraci贸n del usuario en el servidor para que use el m茅todo antiguo.

    Ejecuta esto en tu gestor de base de datos (HeidiSQL, Workbench):

    Code (sql): Select all Collapse
    -- Cambiar al usuario 'tu_usuario' para usar el password nativo antiguo
    ALTER USER 'tu_usuario'@'%' IDENTIFIED WITH mysql_native_password BY 'tu_password';
    FLUSH PRIVILEGES;

    Advertencia: Esto no funcionar谩 en MySQL 9.0, ya que el plugin nativo ha sido eliminado. En MySQL 8.4, primero debes habilitar mysql_native_password=ON en el archivo de configuraci贸n del servidor antes de ejecutar el comando SQL.

    Resumen para tu desarrollo

    Componente驴Qu茅 soporta?Acci贸n requerida
    FWH (C贸digo PRG)Agn贸sticoNinguna (tu c贸digo oServer:Connect(...) no cambia).
    DLL Antigua (5.x)Solo mysql_nativeFalla con MySQL 8 default. Debes actualizarla.
    DLL Nueva (8.x)AmbosFunciona, pero puede requerir dependencias SSL adicionales.
    MariaDB DLL (3.x)Ambos (Recomendado)Funciona perfecto con MySQL 8/9 y caching_sha2.
    regards, saludos

    Antonio Linares
    www.fivetechsoft.com
    Posts: 582
    Joined: Fri Oct 07, 2005 02:17 PM
    Re: Validacion MySQL caching_sha2_password
    Posted: Mon Dec 01, 2025 11:47 AM

    Saludos Antonio

    Gracias por la explicacion, me queda claro y empezare a probar con el DLL de MariaDB

    Enrrique Vertiz Pitta

    Lima-Peru

    xHb 1.23.1026X, Fwh 25.01, BCC74, MySQL 8.0.X, SQLLIB 1.9m
    Posts: 410
    Joined: Sun Jan 31, 2010 03:30 PM
    Re: Validacion MySQL caching_sha2_password
    Posted: Mon Dec 01, 2025 01:45 PM

    Buen dia...

    O lo mas rapido seria... ?

    Manteneter : ECHO "%fwhdir%\lib\libmariadb32.lib >> xhb.tmp" y libmariadb.dll

    y conectarse a un server de mariadb o mysql 8.4 +... sin ninguna restricion de poder usar las funcionalidades de mysql 8.4 + ?

    Gracias

    Posts: 410
    Joined: Sun Jan 31, 2010 03:30 PM
    Re: Validacion MySQL caching_sha2_password
    Posted: Tue Dec 02, 2025 02:23 PM

    Buen dia...

    Error al conectarse a mysql 9.5

    Con la dll de mysql ...si genera mensaje que el cliente no soporta autenticacion nativa...

    y con la dll renombrada a mariadb.. genera este error

    2019 Can麓t initialize character set unknown (path: compiled_in)

    Posts: 410
    Joined: Sun Jan 31, 2010 03:30 PM
    Re: Validacion MySQL caching_sha2_password
    Posted: Wed Dec 03, 2025 12:57 AM

    modificando el my.ini... se corrigio

    [client]
    default-character-set = utf8mb4
    port=3310

    [mysql]
    no-beep
    default-character-set = utf8mb4

    [mysqld]

    character-set-server = utf8mb4
    collation-server = utf8mb4_unicode_ci

    pero ahora el error es :
    2058 puglin caching_sha2_password could no be loaded: no se puede encontrar el modulo especificado

    nota : desde heidsql + libmariadb.dll .. se conecta bien

    Posts: 1789
    Joined: Tue Oct 11, 2005 05:01 PM
    Re: Validacion MySQL caching_sha2_password
    Posted: Fri Dec 05, 2025 04:21 PM

    En el caso de la dll de libmysql.dll de Oracle, en las versiones m谩s recientes >=7.5, todos los plugins, incluido "caching_sha2_password"
    est谩n incluidos en la propia dll, por ello el mayor tama帽o de la dll > 6MB.

    En el caso de libmariadb no es as铆, ya que est谩n en dll independientes, en el conector hay una carpeta plugin donde est谩n las dll de cada plugin que se puede usar, por ejemplo "caching_sha2_password", se debe tomar y ponerla junto a la dll de mariadb.


    por ello el tama帽o de la dll es menor.

    Salu2

    Carlos Vargas

    Desde Managua, Nicaragua (CA)
    Posts: 410
    Joined: Sun Jan 31, 2010 03:30 PM
    Re: Validacion MySQL caching_sha2_password
    Posted: Sat Dec 06, 2025 12:26 PM

    Carlos buen d铆a

    Funciono perfecto ... copiando el plugin

    Compilando con la lib de mariadb y renombrando la dll de mariadb a mysql ... no deben coexistir las 2 dll ( mariadb y mysql)

    Gracias

    JONSSON RUSSI

    Continue the discussion