m0_62370567 2024-06-06 22:35 采纳率: 66.7%
浏览 24

mysql修改加密方式

MySQL8.4版本连接node.js报错,错误:mysql模块并未完全支持MySQL 8的“caching_sha2_password”加密方式;
求问如何修改MySQL8.4版本的加密方式。
网上找到的都是直接输入更改


```sql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';

但是一直报错


```shell
ERROR 1524 (HY000): Plugin 'mysql_native_password' is not loaded

求解决

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-06-06 22:35
    关注

    引自免费微信小程序:皆我百晓生

    在 MySQL 8.0 版本之后,mysql_native_password 已经被 caching_sha2_password 取代为默认的身份验证插件。然而,如果你的 Node.js 应用程序仍然依赖于 mysql_native_password,你需要确保这个插件已经启用。要解决这个问题,请按照以下步骤操作:

    1. 启用 mysql_native_password 插件: 首先,你需要登录到 MySQL shell。打开终端并运行以下命令:

      mysql -u root -p
      

      输入你的 root 密码后,你应该进入了 MySQL 命令行界面。

      然后,执行以下 SQL 命令以加载 mysql_native_password 插件:

      INSTALL PLUGIN mysql_native_password SONAME 'native_password.so';
      

      如果安装成功,你应该会看到类似这样的消息:Query OK, 0 rows affected (0.00 sec)

    2. 修改用户密码的加密方式: 使用之前你在问题中提到的命令来改变 root 用户的密码,但是因为插件已经被启用,这次应该可以成功了:

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

      这将把 root 用户的密码更改为 '123456',并且使用的是 mysql_native_password 加密方法。

    3. 退出 MySQL shell 并重新启动 Node.js 应用程序: 在 MySQL 命令行界面中,键入 EXIT\q 退出 MySQL shell。

      现在,你应该可以在 Node.js 应用程序中使用新设置的密码和 mysql_native_password 加密方式连接到 MySQL 服务器了。如果你使用的 Node.js 连接库是 mysql2,请确保你安装了最新版,并且更新你的配置文件,例如:

      const mysql = require('mysql2');
      
      const connection = mysql.createConnection({
        host: 'localhost',
        user: 'root',
        password: '123456',
        database: 'your_database_name',
        insecureAuth: true, // 添加这行以允许不安全的认证(仅适用于 MySQL < 8.0)
      });
      
      connection.connect((err) => {
        if (err) throw err;
        console.log('Connected!');
      });
      

      注意:insecureAuth: true 这一行是为了兼容旧的认证方法,它告诉 mysql2 库忽略安全性警告并尝试使用 mysql_native_password

    完成以上步骤后,你应该能成功地使用 Node.js 应用程序连接到 MySQL 8.4 版本的数据库。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 6月6日

悬赏问题

  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化
  • ¥15 Mirare PLUS 进行密钥认证?(详解)
  • ¥15 物体双站RCS和其组成阵列后的双站RCS关系验证
  • ¥20 想用ollama做一个自己的AI数据库
  • ¥15 关于qualoth编辑及缝合服装领子的问题解决方案探寻
  • ¥15 请问怎么才能复现这样的图呀