Xandr24
@Xandr24
учиться и еще раз учиться

Как исправить ошибку mysql_native_password?

Добрый вечер Всем!
Создаю Веб приложение с авторизацией на Node.js + Passport.js + Sequelize с диалектом Mysql
Суть проблемы следующая:
Создал файл для импорта всех моделей из папки models, добавляю следующий код в основной файл проекта
models.sequelize.sync().then(function() {
    console.log('All good')
}).catch(function(err) {
    console.log(err, "Where is wrong")
});

Запускаю файл и все гуууд.
Далее создаю модель Юзеров которая будет содержать в себе инфу о них, файл моедли юзеров находится также в папке models, запускаю и получаю следующую ошибку

{ SequelizeConnectionError: Client does not support authentication protocol requested by server; consid
er upgrading MySQL client

    at Utils.Promise.tap.then.catch.err (C:\node.js\tests\sequelize\node_modules\sequelize\lib\dialects
\mysql\connection-manager.js:149:19)
    at tryCatcher (C:\node.js\tests\sequelize\node_modules\bluebird\js\release\util.js:16:23)
    at Promise._settlePromiseFromHandler (C:\node.js\tests\sequelize\node_modules\bluebird\js\release\p
romise.js:512:31)
    at Promise._settlePromise (C:\node.js\tests\sequelize\node_modules\bluebird\js\release\promise.js:5
69:18)
    at Promise._settlePromise0 (C:\node.js\tests\sequelize\node_modules\bluebird\js\release\promise.js:
614:10)
    at Promise._settlePromises (C:\node.js\tests\sequelize\node_modules\bluebird\js\release\promise.js:
689:18)
    at Async._drainQueue (C:\node.js\tests\sequelize\node_modules\bluebird\js\release\async.js:133:16)
    at Async._drainQueues (C:\node.js\tests\sequelize\node_modules\bluebird\js\release\async.js:143:10)
    at Immediate.Async.drainQueues [as _onImmediate] (C:\node.js\tests\sequelize\node_modules\bluebird\
js\release\async.js:17:14)
    at runCallback (timers.js:763:18)
    at tryOnImmediate (timers.js:734:5)
    at processImmediate (timers.js:716:5)
  name: 'SequelizeConnectionError',
  parent:
   { Error: Client does not support authentication protocol requested by server; consider upgrading MyS
QL client
    at Packet.asError (C:\node.js\tests\sequelize\node_modules\mysql2\lib\packets\packet.js:714:13)
    at ClientHandshake.Command.execute (C:\node.js\tests\sequelize\node_modules\mysql2\lib\commands\com
mand.js:28:22)
    at Connection.handlePacket (C:\node.js\tests\sequelize\node_modules\mysql2\lib\connection.js:513:28
)
at PacketParser.onPacket (C:\node.js\tests\sequelize\node_modules\mysql2\lib\connection.js:81:16)
    at PacketParser.executeStart (C:\node.js\tests\sequelize\node_modules\mysql2\lib\packet_parser.js:7
6:14)
    at Socket.<anonymous> (C:\node.js\tests\sequelize\node_modules\mysql2\lib\connection.js:89:29)
    at Socket.emit (events.js:180:13)
    at addChunk (_stream_readable.js:274:12)
    at readableAddChunk (_stream_readable.js:261:11)
    at Socket.Readable.push (_stream_readable.js:218:10)
    at TCP.onread (net.js:581:20)
     code: 'ER_NOT_SUPPORTED_AUTH_MODE',
     errno: 1251,
     sqlState: '08004',
     sqlMessage: 'Client does not support authentication protocol requested by server; consider upgradi
ng MySQL client' },
  original:
   { Error: Client does not support authentication protocol requested by server; consider upgrading MyS
QL client
    at Packet.asError (C:\node.js\tests\sequelize\node_modules\mysql2\lib\packets\packet.js:714:13)
    at ClientHandshake.Command.execute (C:\node.js\tests\sequelize\node_modules\mysql2\lib\commands\com
mand.js:28:22)
at Connection.handlePacket (C:\node.js\tests\sequelize\node_modules\mysql2\lib\connection.js:513:28
)
    at PacketParser.onPacket (C:\node.js\tests\sequelize\node_modules\mysql2\lib\connection.js:81:16)
    at PacketParser.executeStart (C:\node.js\tests\sequelize\node_modules\mysql2\lib\packet_parser.js:7
6:14)
    at Socket.<anonymous> (C:\node.js\tests\sequelize\node_modules\mysql2\lib\connection.js:89:29)
    at Socket.emit (events.js:180:13)
    at addChunk (_stream_readable.js:274:12)
    at readableAddChunk (_stream_readable.js:261:11)
    at Socket.Readable.push (_stream_readable.js:218:10)
    at TCP.onread (net.js:581:20)
     code: 'ER_NOT_SUPPORTED_AUTH_MODE',
     errno: 1251,
     sqlState: '08004',
     sqlMessage: 'Client does not support authentication protocol requested by server; consider upgrading MySQL client' } } 'Wrong'

До конца не могу понять что к чему, вроде по юзал на форумах , но ни чего именно мне подходящего не нашел, проблема как я понял в авторизации и пароле. Я использую обычный mysql для Windows 10, в node.js использую npm пакет mysql2, при запуске кода который указал изначально выше перед тем как все заработало сначала попросило использовать mysql2 а не mysql.
Помогите пожалуйста кто может, что т очень сложно для меня ((
  • Вопрос задан
  • 968 просмотров
Решения вопроса 1
@BorisKorobkov Куратор тега MySQL
Web developer
Так вы хотите использовать Native Pluggable Authentication или нет?

Если хотите, то обновите клиента (Node.js + Passport.js + Sequelize), чтобы он его поддерживал.

Если не хотите, то настройте MySQL с другой авторизацией.
https://dev.mysql.com/doc/refman/5.7/en/pluggable-...
https://dev.mysql.com/doc/refman/5.7/en/server-sys...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы