MySQL 如何更改用户身份验证插件

发布于 2025-03-04 21:31:10 字数 2299 浏览 4 评论 0

问题重现

运行一个简单的 Node.js 程序,测试下我们 MySQL 服务器的连通性:

const express = require('express');
const mysql= require('mysql');

const app = express();

const db = mysql.createConnection({
    host: '192.168.2.173',
    port: '3306',
    user: 'root',
    password: 'root123',
    database: 'mysql'
});

db.connect();

app.get('/users', (req, res) => {
    const sql = 'SELECT User, Host, Plugin FROM user';

    db.query(sql, (err, result) => {
        if (err) throw err;
        res.send(result);
    });
});

app.listen(5000, () => console.log('服务已启动'));

如果我们使用的是 MySQL 8.0.4 及以后的版本,且在没有进行额外配置的情况下,不出意外地我们会得到以下的错误:

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

这是因为从 MySQL 8.0.4 开始,MySQL 服务器的默认身份验证插件从 mysql_native_password 更改为了 caching_sha2_password ,而我们使用的 MySQL 客户端还不支持新版的身份验证插件。所以一个比较简单的解决方案就是将用户的身份验证插件改回 mysql_native_password

问题解决

查看用户所使用的身份验证插件:

mysql> SELECT User, Host, Plugin FROM mysql.user;
+------------------+-----------+-----------------------+
| User             | Host      | Plugin                |
+------------------+-----------+-----------------------+
| root             | %         | caching_sha2_password |
| mysql.infoschema | localhost | caching_sha2_password |
| mysql.session    | localhost | caching_sha2_password |
| mysql.sys        | localhost | caching_sha2_password |
| root             | localhost | caching_sha2_password |
+------------------+-----------+-----------------------+
5 rows in set (0.00 sec)

上面的结果正验证了我们的猜测,下面我们就将 root 用户的身份验证插件修改为 mysql_native_password

ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root123';

比较好的做法是创建非 root 用户,并指定相关权限。这里,我为了测试的简单,直接使用 root 用户。

然后再执行我们的 Node.js 代码,访问 http://localhost:5000/users ,就可以得到正确结果了。

参考链接

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

女皇必胜

暂无简介

文章
评论
27 人气
更多

推荐作者

櫻之舞

文章 0 评论 0

弥枳

文章 0 评论 0

m2429

文章 0 评论 0

野却迷人

文章 0 评论 0

我怀念的。

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文