由于admin用户调用存储过程或者查询视图无访问权限。因此只要给admin用户添加一个访问权限即可
首先确保你有admin 用户
然后命令行执行命令
mysql>grant all privileges on *.* to admin@"%" identified by ".";
最后刷新一下
mysql> flush privileges;
ok了
对执行的指令有兴趣的可以参见以下内容:
指定范围:
@'localhost' :指本机使用'admin'账号才可访问
@'IP地址 :'指定该IP地址使用'admin'账号才可访问。
@'%' :任何电脑连接此数据库使用'admin'账号才可访问。
权限列表:
ALTER: 修改表和索引。
CREATE: 创建数据库和表。
DELETE: 删除表中已有的记录。
DROP: 抛弃(删除)数据库和表。
INDEX: 创建或抛弃索引。
INSERT: 向表中插入新行。
REFERENCE: 未用。
SELECT: 检索表中的记录。
UPDATE: 修改现存表记录。
FILE: 读或写服务器上的文件。
PROCESS: 查看服务器中执行的线程信息或杀死线程。
RELOAD: 重载授权表或清空日志、主机缓存或表缓存。
SHUTDOWN: 关闭服务器。
ALL: 所有权限,ALL PRIVILEGES同义词。
USAGE: 特殊的 "无权限" 权限。
指令解析
grant all privileges on *.* to 'admin'@'%' identified by '123456' with grant option;
表示将所有权限授予给用户。也可指定具体的权限,如:SELECT、CREATE、DROP等。
表示这些权限对哪些数据库和表生效,格式:数据库名.表名,这里写“*”表示所有数据库,所有表。如果我要指定将权限应用到test库的user表中,可以这么写:test.user
将权限授予哪个用户。格式:
”用户名”@”登录IP或域名”。
% 表示没有限制,在任何主机都可以登录
指定用户的登录密码
表示允许用户将自己的权限授权给其它用户