問題描述:
在使用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登錄方式:https://blog.csdn.net/gigijingjing/article/details/53216179
- MySQL錯誤:https://www.cnblogs.com/kingxiaozi/p/10619680.html