mysql报错: SELECT command denied to bm_user ‘aaa‘@‘localhost‘ for table ‘bm_user‘

错误信息的字面意思是:表“bm_user”拒绝用户“aaa”@“localhost”的SELECT命令 ,用户没有查看bm_user表的权限,需要root账号授权 用户aaa对表bm_user的select操作权限

以下2种原因:

1.使用root账号登录数据库,执行授权SQL
grant select on adb.bm_user to 'aaa'@'localhost' IDENTIFIED BY '';
授权后需要刷新权限才会生效:
flush privileges;

2.
数据库 adb的用户是aaa,
数据库 bdb的用户是bbb,
项目中配置多数据源,在数据源为adb的事务中,调用数据源为bdb的查询方法时,数据源切换不生效,adb数据库查不到dbd数据库中的表,也会报以上问题
此时需要在数据源为adb的事务中切换数据源成功,
需要将当前所属数据源adb的事务暂停,
可以在调用数据源为bdb的查询方法上添加
@Transactional(propagation = Propagation.NOT_SUPPORTED)
或者
@Transactional(propagation = Propagation.REQUIRES_NEW)

@DatsSource("bdb")
@Transactional(propagation = Propagation.NOT_SUPPORTED)
public BmUserDto selectBmUserById(Integer userId) {
    //
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值