错误信息的字面意思是:表“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) {
//
}