专业的编程技术博客社区

网站首页 > 博客文章 正文

mysql8密码验证插件不一致导致没法远程连接问题

baijin 2024-09-10 11:05:28 博客文章 22 ℃ 0 评论

使用docker按照好mysql8之后,想创建一个新用户,设定新用户只能访问指定的数据库。首先创建数据库xinhaihui,这个没有问题。再次使用以下语句创建用户,刚开始了解8.0所以从网络搜索了语句开始复制粘贴创建。

--可以本地链接

CREATE USER 'andywong'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234qwer';

-- 可以远程访问

CREATE USER 'andywong'@'%' IDENTIFIED WITH mysql_native_password BY '1234qwer';

grant all on xinhaihui.* to 'andywong'@'%';

flush privileges;

创建完成之后,使用DBeaver链接mysql,发现总是报错没有权限授权。找了好半天发现文章最后竟然有一句:

MySQL8.0.4开始,默认身份认证开始改变。因为之前,MySQL的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”。

通过语句select user,host,plugin,authentication_string from user;查看所有用户发现密码验证插件不一样。语句查看我的mysql版本Server version: 8.0.27 MySQL Community Server - GPL。

接着重新来过删除用户,删除WITH mysql_native_password语句重新执行创建用户。

--可以本地链接

CREATE USER 'andywong'@'localhost' IDENTIFIED BY '1234qwer';

-- 可以远程访问

CREATE USER 'andywong'@'%' IDENTIFIED BY '1234qwer';

grant all on xinhaihui.* to 'andywong'@'%';

flush privileges;

终于链接成功

注:mysql也支持修改默认密码认证插件

编辑my.cnf文件,更改默认的身份认证插件。在[mysqld]中添加下边的代码

default_authentication_plugin=mysql_native_password

重启mysql

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表