Client does not support authentication protocol requested by server 错误在js代码和vscode中的sql工具中

问题描述 投票:0回答:1

我正在尝试从我的node.js代码和VS代码中的SQLTools连接到数据库。

在代码和设置中我一直在 SQLTools 设置中收到错误

ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

来自CMD:

Error connecting to the MySQL Database
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
    at Sequence._packetToError (D:\Backend\Server\node_modules\mysql\lib\protocol\sequences\Sequence.js:47:14)
    at Handshake.ErrorPacket (D:\Backend\Server\node_modules\mysql\lib\protocol\sequences\Handshake.js:123:18)
    at Protocol._parsePacket (D:\Backend\Server\node_modules\mysql\lib\protocol\Protocol.js:291:23)
    at Parser._parsePacket (D:\Backend\Server\node_modules\mysql\lib\protocol\Parser.js:433:10)
    at Parser.write (D:\Backend\Server\node_modules\mysql\lib\protocol\Parser.js:43:10)
    at Protocol.write (D:\Backend\Server\node_modules\mysql\lib\protocol\Protocol.js:38:16)
    at Socket.<anonymous> (D:\Backend\Server\node_modules\mysql\lib\Connection.js:88:28)
    at Socket.<anonymous> (D:\Backend\Server\node_modules\mysql\lib\Connection.js:526:10)
    at Socket.emit (node:events:537:28)
    at addChunk (node:internal/streams/readable:324:12)
    --------------------
    at Protocol._enqueue (D:\Backend\Server\node_modules\mysql\lib\protocol\Protocol.js:144:48)
    at Protocol.handshake (D:\Backend\Server\node_modules\mysql\lib\protocol\Protocol.js:51:23)
    at Connection.connect (D:\Backend\Server\node_modules\mysql\lib\Connection.js:116:18)
    at Object.<anonymous> (D:\Backend\Server\serverTest.js:9:12)
    at Module._compile (node:internal/modules/cjs/loader:1112:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1166:10)
    at Module.load (node:internal/modules/cjs/loader:988:32)
    at Module._load (node:internal/modules/cjs/loader:834:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12)
    at node:internal/main/run_main_module:17:47 {
  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

SQL Server 路径添加为环境变量

我读到我需要在 sql 查询中执行以下命令

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

来自this SO question,但它没有帮助我

此外还有代码:

serverTest.js:

const mysql = require('mysql')

const connection = mysql.createConnection({
      host: 'localhost',
      user: 'root@localhost',
      password: '135794ee497531E',
})

connection.connect(err => {
      if (err) {
            console.log('Error connecting to the MySQL Database')
            console.log(err)
            return
      }
      console.log('Connection established successfully!')
})

connection.end()
mysql authentication connection
1个回答
0
投票

来源:https://www.youtube.com/watch?v=b4m-BpJQHGA

要修复此错误,请转到 CMD 并输入以下命令:

mysql -u root -p

进入后,一步步写三个命令:

CREATE USER 'sqluser'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

你可以在哪里写你的参数而不是

sqluser
password

这条命令执行完后,写

GRANT ALL PRIVILEGES ON . TO 'sqluser'@'%';

完成

FLUSH PRIVILEGES;
© www.soinside.com 2019 - 2024. All rights reserved.