Lost connection to Mysql server during query问题解决

本文探讨了在MySQL 8.0.19环境中创建用户并分配视图权限时遇到的错误,关键在于指定加密插件MYSQL_NATIVE_PASSWORD。解决办法是针对8.0.19版本数据库使用该插件,以确保视图权限的正确授予。
摘要由CSDN通过智能技术生成

一. 复现出现错误的操作:

业务要求创建视图并提供拥有只能查看视图权限的用户。经过操作创建用户和赋权的操作,本以为完事,用新用户连接Navicat发现报出如下问题:

其中创建用户和赋权的SQL语句如下:

create USER 'XXXX'@'%' IDENTIFIED  BY 'XXXX';

grant select on xx.xxxx to 'XXXX'@'%';

show grants for 'XXXX'@'%';查看新用户的权限信息:

 

跑到数据库服务器上通过命令行登录新用户,发现select语句一切正常。测试环境数据版本为8.0.19。

 二.正常的操作:

在开发环境进行上述操作,发现一切正常。开发环境数据库版本为8.0.23。

三.解决问题:

经过尝试,问题出在创建用户时是否指定加密插件。其中开发环境8.0.23版本数据库经尝试,无论是否指定加密插件都视图均可正常访问。

测试环境8.0.19版本数据库,创建用户时需要指定加密插件为MYSQL_NATIVE_PASSWORD。操作SQL如下:

CREATE USER 'xxxx'@'%' IDENTIFIED WITH MYSQL_NATIVE_PASSWORD BY 'xxxx';

grant select on xxxx.xxxxto 'xxxx'@'%';

在不指定加密插件的情况下,权限表user中对应用户的加密插件字段plugin为caching_sha2_password。这个不同导致本次错误产生。

四. 总结:

mysql8.0新特性之一,默认使用caching_sha2_password作为身份验证插件。具体为什么会引发看似并不相关的问题,待有时间查阅资料后会记录出来。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值