"Client does not support authentication protocol requested by server; consider upgrading MySQL client" 即使降级到 mysql@5.7
"Client does not support authentication protocol requested by server; consider upgrading MySQL client" even after downgrading to mysql@5.7
我最初使用的是 mysql 8.0,这给了我错误
ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
尝试 运行 我的服务器时。我在多个来源上看到降级到 mysql@5.7 会解决问题,因为 5.7 使用本机密码身份验证,但降级到早期版本后仍然存在相同的错误。关于错误仍然存在的原因还有其他已知原因吗?
这是我的配置文件:
config.js
// import dependencies
const util = require("util");
const mysql = require("mysql");
// import environment variables
const env = {
env: process.env.NODE_ENV,
host: process.env.DB_HOST,
database: process.env.DB_NAME,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD
}
const database = mysql.createConnection({
host: env.host,
database: env.database,
user: env.user,
password: env.password
});
database.connect(err => {
if (err) {
console.log("Connection " + err);
} else {
console.log(`Connection Success: You are now connected to the ${env.env} database`);
}
});
// promisify all database queries
database.query = util.promisify(database.query);
// export database
module.exports = database;
MySQL 8.0 引入了很多客户端不理解的默认 SHA256 加密。您有很多选择,最简单的方法是使用旧的 MySQL 本机密码(参见 https://mysqlserverteam.com/upgrading-to-mysql-8-0-default-authentication-plugin-considerations/)身份验证。更改帐户以使用旧的身份验证,您的客户端连接器会很高兴。
我最初使用的是 mysql 8.0,这给了我错误
ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
尝试 运行 我的服务器时。我在多个来源上看到降级到 mysql@5.7 会解决问题,因为 5.7 使用本机密码身份验证,但降级到早期版本后仍然存在相同的错误。关于错误仍然存在的原因还有其他已知原因吗?
这是我的配置文件:
config.js
// import dependencies
const util = require("util");
const mysql = require("mysql");
// import environment variables
const env = {
env: process.env.NODE_ENV,
host: process.env.DB_HOST,
database: process.env.DB_NAME,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD
}
const database = mysql.createConnection({
host: env.host,
database: env.database,
user: env.user,
password: env.password
});
database.connect(err => {
if (err) {
console.log("Connection " + err);
} else {
console.log(`Connection Success: You are now connected to the ${env.env} database`);
}
});
// promisify all database queries
database.query = util.promisify(database.query);
// export database
module.exports = database;
MySQL 8.0 引入了很多客户端不理解的默认 SHA256 加密。您有很多选择,最简单的方法是使用旧的 MySQL 本机密码(参见 https://mysqlserverteam.com/upgrading-to-mysql-8-0-default-authentication-plugin-considerations/)身份验证。更改帐户以使用旧的身份验证,您的客户端连接器会很高兴。