"Host 'localhost' is not allowed to connect to this MySQL server" 的原因及解决办法
(2010-11-29 16:02:36)标签: 杂谈 |
今天发现帝国CMS与PHP5.3有问题,一安装就出现"httpd.exe不能为read",我尚未找到解决办法,只有自己重新装了一下PHP5.2.X的版本。连MYSQL也重装了。
重装完毕后,发现MYSQL数据库密码为空,则update了 user表里的root密码,重新连接,发现出现"Host 'localhost' is not allowed to connect to this MySQL server" ,真是离奇的事情一件接一见
后来回想了一下发现,因为只是update了root,但是MYSQL是有个访问控制表,root的访问控制表未更新,就导致了无法访问mysql
网上找到的解决方法,应该是跳过该表就可以直接使用了,但是这个放在服务器上还是会有一定的风险,那就是任何人在任何地方都可以访问你的MYSQL,如果安全重要的话还是重新装一下数据库好了。
解决方法如下:
----------------------------------------
编辑 my.ini linux下为/etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
例如:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-name-resolve
skip-grant-tables
目的是为了:
跳过MySQL的访问控制,任何人都可以在控制台以管理员的身份进入MySQL数据库。
需要注意的是在修改完密码以后要把MySQL服务器停掉重新启动才会生效
重启mysql服务!
OK!