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

1. 问题描述:

我电脑安装了MySQL版本是:


MySQL版本号8.0.12

我在学习使用mpvue开发微信小程序前后端时,使用的是腾讯云提供的node服务,在server->config.js中:

mysql: {
    host: 'localhost',
    port: 3306,
    user: 'root',
    db: 'cAuth',
    pass: 'MySQL密码',
    char: 'utf8mb4'
  },

配置好 config.js 之后,就要开始初始化环境,初始化环境分为两步

# 切换到服务端代码目录
cd server

# 安装依赖
npm install

# 安装全局依赖
npm install -g nodemon

初始化数据库 - 打开 CMD 输入如下命令:

node tools/initdb.js

此时报错:

⇒  node tools/initdb.js 

======================================
开始初始化数据库...
准备读取 SQL 文件:/Users/zhangxi/Documents/study/小程序/my-project/server/tools/cAuth.sql
开始执行 SQL 文件...
Unhandled rejection Error: Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
    at DB.raw.then.err (/Users/zhangxi/Documents/study/小程序/my-project/server/tools/initdb.js:40:11)
    at tryCatcher (/Users/zhangxi/Documents/study/小程序/my-project/server/node_modules/_bluebird@3.5.2@bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/Users/zhangxi/Documents/study/小程序/my-project/server/node_modules/_bluebird@3.5.2@bluebird/js/release/promise.js:512:31)
    at Promise._settlePromise (/Users/zhangxi/Documents/study/小程序/my-project/server/node_modules/_bluebird@3.5.2@bluebird/js/release/promise.js:569:18)
    at Promise._settlePromise0 (/Users/zhangxi/Documents/study/小程序/my-project/server/node_modules/_bluebird@3.5.2@bluebird/js/release/promise.js:614:10)
    at Promise._settlePromises (/Users/zhangxi/Documents/study/小程序/my-project/server/node_modules/_bluebird@3.5.2@bluebird/js/release/promise.js:690:18)
    at _drainQueueStep (/Users/zhangxi/Documents/study/小程序/my-project/server/node_modules/_bluebird@3.5.2@bluebird/js/release/async.js:138:12)
    at _drainQueue (/Users/zhangxi/Documents/study/小程序/my-project/server/node_modules/_bluebird@3.5.2@bluebird/js/release/async.js:131:9)
    at Async._drainQueues (/Users/zhangxi/Documents/study/小程序/my-project/server/node_modules/_bluebird@3.5.2@bluebird/js/release/async.js:147:5)
    at Immediate.Async.drainQueues [as _onImmediate] (/Users/zhangxi/Documents/study/小程序/my-project/server/node_modules/_bluebird@3.5.2@bluebird/js/release/async.js:17:14)
    at runCallback (timers.js:696:18)
    at tryOnImmediate (timers.js:667:5)

2. 原因解释:

主要原因是mysql服务器要求的认证插件版本与客户端不一致造成的。
打开mysql命令行输入如下命令查看,系统用户对应的认证插件:
命令进入MySQL内:

select user,plugin from mysql. user;
进去

可以看到root用户使用的plugin是caching_sha2_password,mysql官方网站有如下说明:


image.png

意思是说caching_sha2_password是8.0默认的认证插件,必须使用支持此插件的客户端版本。
plugin的作用之一就是处理后的密码格式和长度是不一样的,类似于使用MD5加密和使用base64加密一样对于同一个密码处理后的格式是不一样的。

3. 解决方法:

我不希望更新本地的客户端版本,想直接使用原来的环境来链接。
解决方法是将root的plugin改成mysql_native_password。相当于降了一级。
mysql官方网站提供了从mysql_old_password升级到mysql_native_password,我们可以仿照这个。官方原文如下:


image.png

这里改成:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你想设置的MySQL登录密码';

这行代码有两层含义,第一:修改root的密码为'你想设置的MySQL登录密码',摒弃原来的旧密码。第二:使用mysql_native_password对新密码进行编码。


image.png

我这里将密码设置为'',意味着不设置密码

修改完之后再到server里面执行连接数据库

node tools/initdb.js
image.png

4. 补充:

如果在修改插件的时候出现错误,可现将插件改为 mysql_old_password,然后再升级成mysql_native_password,方法:


image.png

参考:navicat for mysql 链接时报错:1251-Client does not support authentication protocol requested by server

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容