MySQL8.4报错ERROR 1524 (HY000): Plugin ‘mysql_native_password‘ is not loaded完美解决方法,有手就行

😸个人主页👉:神兽汤姆猫

📖系列专栏:开发语言环境配置 、 Java学习Java面试  、Markdown

学习上的每一次进步,均来自于平时的努力与坚持。

💕如果此篇文章对您有帮助的话,请点赞转发收藏这对我有很大的帮助。

前言

安装MySQL请看这篇:最全MySQL下载安装详细配置

安装MySQL8.4.2LTS长期支持服务版时,默认密码更改报错ERROR 1524 (HY000): Plugin 'mysql_native_password' is not loaded。(此方法适用于8.4版本及以上的此报错,包括MySQL9)

复现问题

MySQL配置完毕使用管理员权限打开CMD,输入net start mysql正常启动服务,然后链接数据库输入mysql -u root -p,此时出现Enter password,我们输入默认的随机密码。如下图所示:

此时我们需要将默认随机密码改为root,所以我们键入alter user 'root'@'localhost' identified with mysql_native_password by 'root';

出现如下图所示ERROR 1524 (HY000): Plugin 'mysql_native_password' is not loaded报错:


问题原因

在查阅了官方文档后发现官方对MySQL8.4的MySQL原生密码验证和InnoDB系统变量默认值都进行了更改,而导致此问题的发生。

解决报错问题

MySQL8.4版本开始及以后官方将对mysql_native_password验证插件不再默认启用,如果我们要重新启用则需添加mysql-native-password=ON然后启动服务器。也可以在配置文件中添加此代码。具体方法如下:

此时我们检查自己的配置文件my.ini看一下是否有此代码段,以下是8.4以下正常配置文件的截图:

经过检查并未发现此代码段,那么我们只需将其添加上即可。如下图所示:

如果此时你对MySQL的安装或者配置等有其他疑问请移步此文章,它将解决你百分之80的问题和疑问: 最全MySQL下载安装详细配置--超详细保姆级,附常见问题解决方法(2024更新版)。_mysql下载安装配置-优快云博客

对于此配置文件你也可以直接使用VSCode打开将此代码段复制过去。

VSCode安装配置使用教程(最新版超详细保姆级含插件)一文就够了文章浏览阅读10w+次,点赞943次,收藏3.4k次。Visual Studio Code 是一个轻量级功能强大的源代码编辑器,支持语法高亮、代码自动补全(又称 IntelliSense)、代码重构、查看定义功能,并且内置了命令行工具和 Git 版本控制系统。适用于 Windows、macOS 和 Linux。它内置了对 JavaScript、TypeScript 和 Node.js 的支持,并为其他语言和运行时(如 C++、C#、Java、Python、PHP、Go、.NET)提供了丰富的扩展生态系统。_vscode使用教程 https://blog.youkuaiyun.com/MSDCP/article/details/127033151?spm=1001.2014.3001.5501my.ini配置代码段如下:

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置3306端口
port = 3306
# 设置mysql的安装目录
basedir = D:\\CodeEnvironment\\MySQL\\mysql-8.4.2-winx64
# 设置mysql数据库的数据的存放目录
datadir = D:\\CodeEnvironment\\MySQL\\mysql-8.4.2-winx64\\data
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 创建模式
sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# MySQL8.4版本及以上添加,启用验证密码插件(非8.4及以上无需添加)
mysql_native_password=ON

此时我们已经将其配置文件更改保存,请按如下依步进行操作。

输入如下命令停止MySQL服务:

net stop mysql

输入如下命令启动MySQL服务:

net start mysql

输入如下命令链接数据库

mysql -u root -p

[如果不知道自己默认密码的或者有疑问的请看此文章  最全MySQL下载安装详细配置--超详细保姆级,附常见问题解决方法(2024更新版)文章浏览阅读1.1k次,点赞5次,收藏13次。MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,属于Oracle旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。1.MySQL下载 2.MySQL安装 3.MySQL配置文件 4. MySQL重置密码 5. MySQL帮助文档及报错解决。_mysql下载安装配置 https://blog.youkuaiyun.com/MSDCP/article/details/127079785

输入如下命令更改默认密码(root是我更改的密码,你们只需将其替换为你们自己的即可):

alter user 'root'@'localhost' identified with mysql_native_password by 'root';

问题解决完毕,效果如下图所示:


💕如果此篇文章对您有帮助的话,请点赞转发收藏这对我有很大的帮助。

 

### 解决 MySQL `mysql_native_password` 插件问题 当遇到与 `mysql_native_password` 插件相关的错误时,通常是因为客户端和服务器之间的身份验证协议不匹配。以下是解决问题的方法: #### 1. 修改默认的身份验证插件 可以通过修改 MySQL 配置文件来设置默认的身份验证插件为 `mysql_native_password`。编辑 `/etc/my.cnf` 或者 `/etc/mysql/my.cnf` 文件,在 `[mysqld]` 节下添加以下内容[^2]: ```ini default_authentication_plugin=mysql_native_password ``` 保存并重启 MySQL 服务以使更改生效。 #### 2. 更改用户的认证方式 如果某些用户仍然使用其他插件(如 `auth_socket`),可以将其更改为 `mysql_native_password`。执以下 SQL 命令: ```sql ALTER USER 'your_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password'; FLUSH PRIVILEGES; ``` 这会强制指定用户使用 `mysql_native_password` 进身份验证[^1]。 #### 3. 使用 Docker 容器部署时的解决方案 如果你正在通过 Docker 启动 MySQL 并遇到了类似的错误,则可以在运容器时传递环境变量 `MYSQL_ROOT_PASSWORD` 和 `default-authentication-plugin=mysql_native_password` 来确保根用户和其他新创建的用户都使用此插件。例如: ```bash docker run -d --name mysql80 \ -v /etc/localtime:/etc/localtime \ -v /data/mixlinker/mysql19129/mysql:/var/lib/mysql \ -p 3306:3306 \ -e MYSQL_ROOT_PASSWORD="root123" \ -e MYSQL_DATABASE="fidata" \ -e MYSQL_USER="user" \ -e MYSQL_PASSWORD="user123" \ --env default-authentication-plugin=mysql_native_password \ mysql:8.0.16 ``` 上述命令中的 `--env default-authentication-plugin=mysql_native_password` 是关键部分,它指定了容器内的默认身份验证方法[^3]。 #### 4. 检查现有账户使用的插件 为了确认当前数据库中各账号所采用的具体插件名称,可查询如下表单: ```sql SELECT user, host, plugin FROM mysql.user; ``` 如果有任何条目显示的是除 `mysql_native_password` 外的内容,按照前述步骤调整即可。 --- ### 总结 以上提供了几种针对不同场景下的处理办法,无论是本地安装还是基于Docker镜像构建的服务实例都能有效应对由 `mysql_native_password` 引发的相关异常状况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神兽汤姆猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值