问题描述:
在使用wamps时,登录localhost/phpmyadmin后,在数据库页面创建一个新的数据库时,1.显示“无权限操作”,2.“账户”页面无法修改权限操作,且最底端的注意显示用户权限不够。
解决方法:
1.尝试了网上说的修改配置文件config.inc.php(修改phpmyadmin的登陆方式:cookie和http、添加 $cfg['Servers'][$i]['DisableIS'] = true;)都无效以后,在MySQL官网上找到了答案:
https://dev.mysql.com/doc/refman/5.7/en/creating-accounts.html#creating-accounts-granting-privileges
打开MySQL的终端,查看root用户的权限:
show grants for 'root'@'localhost';
如果报错的话:The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
2.刷新一下权限表:
flush privileges;
3.把在所有数据库的所有表的所有权限赋值给位于所有IP地址的root用户
grant all on cactidb.* to root@'localhost' identified by 'psaaword'
4.刷新一下,然后show一下root用户的权限
有全部权限了,且可以授权。因此,在我看来,MySQL里,里面的super权限<all privileges。有个问题就是,在页面中,root显示的也是all privileges权限,但是权力不到位啊,可能显示的是个寂寞吧。
【这里有一篇MySQL的权限详解文章:https://cloud.tencent.com/developer/article/1056271】
5.这里有个小插曲,我在输入命令时,输错一个字符,创建了一个新的用户,并将用户赋予所有权限,因此再次查询root用户时,显示的root为代理状态。
因此,清除一下代理就行了,原来美少女的烦恼真的多,输入错也是一种痛苦。。。【老实人.jpg】
truncate table mysql.proxies_priv;
6.回到phpmyadmin页面,页面如果还没有改的。查看账户状态下面的提示,如果有重新载入,则点击;如果没有,则会提示缺少的具体的权限。比如我的显示的是无RELAOD权限。那我就直接在MySQL终端添加权限:
grant all ON *.* to 'root'@'localhost' with grant option;#保险起见,all一下
flush privileges;
show grants for 'root'@'localhost';#每次操作完看看
grant all on cactidb.* to root@'localhost' identified by 'root';#添加cactibd权限
show一下,然后flush
继续添加权限:
grant all on reload.* to root@'localhost' identified by 'root';
grant all on process.* to root@'localhost' identified by 'root';
查看:
7.查看登录页面,问题解决,可以新建数据库啦!账户也没有问题啦!
原因:
我找了好多资料,貌似都没有说到底层的真正原因。猜想要么又是我的环境问题,要么就是软件本身版本问题。
收获:
- 无论是遇到什么问题,页面会提供官网链接的,一般都可以在官网找到答案。[mysql参考手册]
- 遇到的大的问题单独记下来
- phpmyadmin登录方式:
- MySQL错误:
珍惜时间,只错一次