Conexión a MariaDB con nodejs sobre ssl con contraseña de texto simple

Estoy tratando de conectarme a la instancia de mariadb sobre ssl,

var mysql = require('mysql'); var conn = mysql.createConnection({ user: 'user', password: 'password', debug: true, port: '3306', host: "host", ssl: { "ca": ca } }); conn.connect(); 

la ca es una matriz de certificados. Estoy teniendo el siguiente error.

 Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MariaDB client 

Puedo conectarme a la base de datos usando python con mysql.connector.

Después de configurarlo en el modo de depuración, puedo ver que el cliente está tratando de usar la autenticación mysql_native_password. Necesito usar mysql_clear_password.

Si su servidor es compatible con la autenticación basada en complementos y la solicitud de cambio de autenticación, puede intentar el siguiente código:

 var mysql = require('mysql2'); var conn = mysql.createConnection({ user: 'user', password: 'password', debug: true, port: '3306', host: "host", ssl: { "ca": ca }, authSwitchHandler = (data, cb) => { if (data.pluginName === 'mysql_clear_password') { // https://dev.mysql.com/doc/internals/en/clear-text-authentication.html var password = 'password\0'; var buffer = Buffer.from(password); cb(null, buffer); } }); 

desafortunadamente, el tipo de autenticación inicial siempre es mysql_native con node-mysql2 (espero solucionarlo pronto), por lo que necesita que tanto el soporte auth_plugin como el auth_switch estén habilitados en el servidor