【发布时间】:2018-09-03 20:18:23
【问题描述】:
此时我有点沮丧,所以我不得不求助于 stackoverflow 哈哈,我一直在尝试设置开发环境 3 小时...
这是正在发生的事情,新版本的 mysql 不支持新服务器插件的兼容客户端身份验证机制。 更多信息here
所以此时我已经安装了 8.0 版的 MySQL,我正在尝试将其恢复到 5.7,因为我的 node.js 项目都没有在本地运行。
现在,我跟着this 彻底卸载了MySQL。
和this 安装多版本不同的是我写mysql56而不是写mysql@5.7,因为homebrew/versions/已被弃用。
所以...一旦我这样做了,我就会去终端并检查:
sudo mysql -v
我明白了:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
也就是说,如果我删除当前代理(新版本 8.0),如果我将其添加回来:
# Start agent for current version of mysql (including on login)
ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
我想要的旧版本已经链接:
brew link --force mysql@5.7
现在...有趣的是,当我输入:mysql --version
它说:mysql Ver 14.14 Distrib 5.7.23, for osx10.13 (x86_64) using EditLine wrapper
当我转到我的 node.js 环境时。运行查询或其他内容,它说:
Error: ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client
这是其他关于 MySQL 版本控制的帖子中提到的问题。
谁能帮我一把。谢谢大家
【问题讨论】:
-
"MAC" 指的是具体的东西,所以请不要随便把不应该大写的东西大写。程序员被训练成特别区分大小写!
-
如果您要降级,您可能需要删除您的 MySQL 数据库目录,否则它无法启动,因为 5.7 服务器无法读取 8.0 数据文件。与往常一样,请查看
mysql.err了解详情。如果您的数据库中有任何关键数据,请在继续之前先备份。 -
@tadman 数据库是空的,它是我从头开始制作的项目的空数据库。顺便说一句,你是什么意思?
-
清除所有 MySQL 8.0 数据文件并从 5.7 重新开始。
-
我能够继续进行,稍后我会发布答案我需要休息...我知道这不会那么难,但是当您不知道时会发生这种情况.. . 感谢@tadman 的帮助
标签: mysql node.js authentication homebrew sha2