【问题标题】:MySQL 8: ER_NOT_SUPPORTED_AUTH_MODE [duplicate]MySQL 8:ER_NOT_SUPPORTED_AUTH_MODE [重复]
【发布时间】:2019-03-07 16:11:42
【问题描述】:

设置

  • Expressjs (Node) 在 Windows 10 PC 上的 localhost:3000 上运行。
  • MySQL 通过 docker-machine 在 192.168.99.100:3306 的 Docker 容器中运行。

问题

当尝试使用以下方式将服务器连接到 MySQL 时:

const connection = mysql.createConnection({
  host: '192.168.99.100',
  user: 'root',
  password: 'foo123',
  database: 'foo_db'
});

获取:

错误:ER_NOT_SUPPORTED_AUTH_MODE:客户端不支持服务器请求的身份验证协议;考虑升级 添加 MySQL 客户端

在 StackOverflow 上查看了许多答案。他们中的大多数人使用(example):

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

但是我得到:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'MyNewPass'; 查询正常,0 行受影响(0.06 秒)

而且服务器仍然不想连接。使用 MySQL 5.7 可以正常工作。

任何想法如何为 MySQL 8 解决此问题?


添加:

为了清楚起见:

连接MySQL后,运行:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'foo123';
FLUSH PRIVILEGES;

重新启动 Node.js 和 MySQL 容器,但没有任何反应。

【问题讨论】:

  • FLUSH PRIVILEGES; ?
  • 试过了。并尝试添加新用户。
  • 此时这基本上是一个常见问题解答。 update mysql.user set plugin = 'mysql_native_password' where user = 'root'; flush privileges;stackoverflow.com/questions/2101694/…
  • 像这样的 @dossy 设置插件似乎可以解决问题 - 我的两个 root 用户都设置了 mysql_native_password。但是在那之后,我再也不能连接到 MySQL:ERROR 1130 (HY000): Host '172.17.0.3' is not allowed to connect to this MySQL server.
  • 您创建的用户是root@'172.17.0.3' 还是root@'%'?否则,我认为默认值是root@'localhost',如果你没有在运行 MySQL 的 docker 容器中运行代码,那么你就没有从 localhost 连接。

标签: mysql node.js


【解决方案1】:

我希望您没有按字面意思使用值'MyNewPass',但它确实看起来像它。这应该是一个示例占位符。

在您的情况下,您必须这样做:

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

【讨论】:

  • 不幸的是,我也尝试过foo123。我想知道这个问题是否与我在 Docker 容器内运行 MySQL 有关。
  • 更新了我的描述。如果这没有帮助,可以选择 npmjs.com/package/@mysql/xdevapi 进行生产。
  • 这里的重要部分是WITH mysql_native_password。
  • SELECT plugin FROM mysql.user WHERE User = 'root'; 这告诉你什么?
  • @ruiquel 返回:+-----------------------+ | plugin | +-----------------------+ | caching_sha2_password | | mysql_native_password | +-----------------------+ 2 rows in set (0.00 sec)
猜你喜欢
  • 2017-12-10
  • 1970-01-01
  • 1970-01-01
  • 2022-11-13
  • 1970-01-01
  • 2019-11-01
  • 2012-10-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多