plotly / falcon

Free, open-source SQL client for Windows and Mac 🦅

Home Page:https://plot.ly/free-sql-client-download/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Support for MySQL 8

eneko opened this issue · comments

Seems like Falcon does not support new MySQL 8.0 authentication format:

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

This is because the MySQL client library doesn't seem to support MySQL 8.0 yet.

$ grep mysql package.json 
    "mysql": "^2.15.0",

They have an open issue for this: mysqljs/mysql#2002

A solution may be to move to the official Node.js connector for MySQL: https://dev.mysql.com/doc/dev/connector-nodejs/8.0/ but I don't know how hard that is and if that's the right kind of connector.

Looks like falcon uses sequelize, which uses mysql instead of the official MySQL Connector/node.js

So looks like there are two possible solutions:

  1. Fix MySQL 8.0 support in mysqljs/mysql
    1.1. Allow connections to accounts that use the old mysql_native_password (easy)
    1.2. Add support for caching_sha2 authentication
  2. Add mysqlx dialect to sequelize (using @mysqlx/xdevapi ), re-using some/most of the mysql dialect.