报错信息:
The user specified as a definer ('root'@'%') does not exist
解决方法:
操作:
进入mysql安装的bin目录,shift+鼠标右键:
登录mysql:
mysql -h localhost -u root -p 回车
-h:服务器名,localhost表示本地;
-u:数据库用户名,root为mysql默认用户名;
-p:数据库密码,若设置了密码,则输入密码,若未设置密码,直接回车即可。
如下登录成功:
执行授权语句:
-- mysql8.0之前版本 ,grant会自动添加账号
mysql> grant all privileges on *.* to root@"%" identified by ".";
Query OK, 0 rows affected (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
-- mysql8.0之后版本 ,需要主动添加账号
mysql> create user 'root'@'%' identified by 'root';
Query OK, 0 rows affected (0.02 sec)
mysql> grant all privileges on *.* to 'root'@'%';
Query OK, 0 rows affected (0.02 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
再次还原备份库结果:
问题解决!
若是第三方数据库,我们无法刷权限时,则可更改视图的权限:
ALTER ALGORITHM = UNDEFINED DEFINER = `root`@`%` SQL SECURITY DEFINER VIEW `view_search_wdzsk` AS 视图业务逻辑脚本
注意点:root为我们可以登录第三方数据库的账户。