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:
- Fix MySQL 8.0 support in mysqljs/mysql
1.1. Allow connections to accounts that use the oldmysql_native_password
(easy)
1.2. Add support forcaching_sha2
authentication - Add mysqlx dialect to sequelize (using
@mysqlx/xdevapi
), re-using some/most of themysql
dialect.