今天在本地的时候不知怎么的,修改本地数据库内数据的时候忽然弹出个错误:
The user specified as a definer ('root'@'%') does not exist
权限问题
解决办法:
授权给root所有sql权限
mysql> grant all privileges on *.* to root@"%" identified by ".";
Query OK, 0 rows affected (0.00 sec)
然后再刷新
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
注:第一条sql中后面identified by是输入新密码替换以前的密码但是有的时候会报错:
Error : Your password does not satisfy the current policy requirements
意思是你的密码不符合安全标准,即不符合当前的mysql密码策略。
执行下列sql查看当前mysql策略
mysql>show variables like 'validate_password%';
mysql策略详解地址 :http://www.cnblogs.com/mylanguage/p/5642899.html
把密码设置成符合当前安全策略等级就行了,或者降低策略等级
修改后可以使用下面这个sql查看新增的权限 (user:'root'@'%';)
mysql>SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;
查看权限详情网址 http://www.cnblogs.com/walter371/p/4113196.html