plotly / falcon

Free, open-source SQL client for Windows and Mac 🦅
https://plot.ly/free-sql-client-download/
MIT License
5.13k stars 279 forks source link

Support for MySQL 8 #560

Closed eneko closed 3 years ago

eneko commented 5 years ago

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

dveeden commented 4 years ago

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: https://github.com/mysqljs/mysql/issues/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.

dveeden commented 4 years ago

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.