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
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
Buen dia...
Pregunto .... está previsto seguir con soporte a las nuevas versiones de mysql y mariadb con fivewin (FWCONNECT )
JONSSON RUSSI
Entiendo que las nuevas versiones deben mantener compatibilidad con versiones anteriores ![]()
llevo mas de 25 años desarrollando con MySql
siempre hay compatibilidad desde FWH
saludos!
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
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)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.
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:
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: Select all | Expand
-- 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;Resumen para tu desarrolloAdvertencia: 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.
Saludos Antonio
Gracias por la explicacion, me queda claro y empezare a probar con el DLL de MariaDB
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
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)
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
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.
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