新拿到的项目 把拿来的脚本导入数据库之后 居然访问视图的时候出错了
错误显示的是这个
The user specified as a definer (‘root’@’%’) does not exist
视图定义者不存在
原因: 线上运行的是root@%1本地部署的是 root@localhost
在用户中不存在root@%1(1可忽略 不然没办法高亮。。。。。)
在查询视图的时候 mysql会去检查视图定义者是否存在
不存在则会报这个错误
解决方法: 因为我拿到的是样品系统,所以数据库是空的 所以选择导出视图sql语句,然后删除数据库中相关视图,再导入即可。视图中存在数据的建议另外寻找方法(切记)。
另外再排查过程中可能用到的MySQL语句贴上:
select user(); –查询当前登录用户
SHOW GRANTS FOR ‘root’@‘localhost’; –查登录用户root’@'localhost的权限
SELECT User, Host FROM mysql.user; –查看数据库中所有用户