原因分析
根本原因:数据库访问权限被拒绝。
原因1:mysql设置仅允许本地访问
原因2:mysql数据库database文件的访问权限被限制。
原因1的解决方法:
由于设置了hosts文件,导致计算机将localhost识别为自己的ip,而mysql,尤其是phpmyadmin的mysql默认设置了仅允许localhost访问,导致此错误
ERROR 1130 (HY000): Host 'localhost' is not allowed to connect to this MySQL server
解决办法:修改hosts文件,将带有127.0.0.1
和localhost
的行,用#
注释掉即可。
如果必须修改hosts文件,则可以将mysql仅允许本地访问去掉,具体方法见传送门~
https://blog.csdn.net/zhipeng0520/article/details/32178727
其他由于mysql设置的原因也会导致此问题:传送门:
https://blog.csdn.net/tongle_deng/article/details/7469573
原因2的解决方法:
【其实这几个解决方法都比较危险】
由于mysql本地文件访问被限制,所以导致无法访问。常见于linux
解决方法:设置mysql的database文件访问权限为777
windows:设置mysql下database文件访问权限为everyone或者createowner权限为完全控制。