Я использую mySQL 8.0 и Ubuntu 19.10. Я попытался использовать этот ответ из этого поста errno: 1251, sqlMessage: 'Клиент не поддерживает протокол аутентификации, запрошенный сервером; рассмотрите возможность обновления MySQL client , но это бесполезно. Вот мой код:
var express = require("express");
var router = express.Router();
const util = require('util');
var mysql = require('mysql');
function makeDB() {
var connection = mysql.createConnection({
host: "localhost",
user: "username",
password: "cloneTruyen123",
database: "clone_truyen"
});
connection.connect(function(err) {
if (err) throw err;
console.log("Connected!");
});
return connection;
}
router.get("/", async function(req, res, next) {
var db = makeDB();
let query = "SELECT * FROM novel ORDER BY id ASC";
db.query(query, (err, result) => {
if (err) {
throw err;
}
res.send(result);
});
});
module.exports = router;
Я написал:
mysql> UPDATE mysql.user SET authentication_string='cloneTruyen123', plugin='mysql_native_password' WHERE User='username';
Я тоже пробовал и столкнулся с этой ошибкой
mysql> GRANT ALL PRIVILEGES ON *.* TO 'username'@'localhost' WITH GRANT OPTION;
ERROR 1410 (42000): You are not allowed to create a user with GRANT
Вся ошибка точно такая же в пост, о котором я упоминал
code: 'ER_NOT_SUPPORTED_AUTH_MODE',
errno: 1251,
sqlMessage: 'Client does not support authentication protocol requested by server; consider upgrading MySQL client',
sqlState: '08004',
fatal: true
Единственное, что я не пробовал, это перенастроить сервер mySQL. В ссылке выше есть второе руководство. Поэтому я скачал верстак GUI, но не смог найти, где находится mysql intsaller. Мне удалось открыть файл конфигурации сервера mySQL dabatase с помощью командной строки
cat /etc/mysql/mysql.conf.d/mysqld.cnf
, но я не знаю, что делать дальше. Есть ли способы исправить это? Спасибо