报错
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
at Handshake.Sequence._packetToError (E:\代码练习\node\blog-1\node_modules\_mysql@2.17.1@mysql\lib\protocol\sequences\Sequence.js:47:14)
at Handshake.ErrorPacket (E:\代码练习\node\blog-1\node_modules\_mysql@2.17.1@mysql\lib\protocol\sequences\Handshake.js:123:18)
at Protocol._parsePacket (E:\代码练习\node\blog-1\node_modules\_mysql@2.17.1@mysql\lib\protocol\Protocol.js:291:23)
at Parser._parsePacket (E:\代码练习\node\blog-1\node_modules\_mysql@2.17.1@mysql\lib\protocol\Parser.js:433:10)
at Parser.write (E:\代码练习\node\blog-1\node_modules\_mysql@2.17.1@mysql\lib\protocol\Parser.js:43:10)
at Protocol.write (E:\代码练习\node\blog-1\node_modules\_mysql@2.17.1@mysql\lib\protocol\Protocol.js:38:16)
at Socket.<anonymous> (E:\代码练习\node\blog-1\node_modules\_mysql@2.17.1@mysql\lib\Connection.js:91:28)
at Socket.<anonymous> (E:\代码练习\node\blog-1\node_modules\_mysql@2.17.1@mysql\lib\Connection.js:525:10)onnection.js:525:10)
at emitOne (events.js:116:13)
at Socket.emit (events.js:211:7)
-------------------- otocol\Protocol.js:144:48)
at Protocol._enqueue (E:\代码练习\node\blog-1\node_modules\_mysql@2.17.1@mysql\lib\prrotocol\Protocol.js:51:23)otocol\Protocol.js:144:48) onnection.js:119:18)
at Protocol.handshake (E:\代码练习\node\blog-1\node_modules\_mysql@2.17.1@mysql\lib\protocol\Protocol.js:51:23)
at Connection.connect (E:\代码练习\node\blog-1\node_modules\_mysql@2.17.1@mysql\lib\Connection.js:119:18)
at Object.<anonymous> (e:\代码练习\node\blog-1\src\db\mysql.js:10:5)
at Module._compile (module.js:652:30)
at Object.Module._extensions..js (module.js:663:10)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
报错原因
因为mysql版本较高,最新的加密方式node还不支持,只能修改mysql的密码保存方式
解决方法
1、打开cmd,切换到mysql目录下的bin文件夹下,我的是切换到
C:\web\mysql-8.0.16\bin
2、然后输入命令mysql -u root -p,输入mysql密码,目的是连接到mysql
3、连接成功后输入命令
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘1234’;//这个1234就是你自己的数据库密码,然后在node中重新连接就可以