errno: 1251, sqlMessage: 'Клиент не поддерживает протокол аутентификации, запрошенный сервером; Как исправить? [UBUNTU] - PullRequest
0 голосов
/ 04 мая 2020

Я использую 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

, но я не знаю, что делать дальше. Есть ли способы исправить это? Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...