Host is not allowed to connect to this MYSQL server:
1:如果MySQL版本大于5.6,且打开MySQL Workbench6.0 后能够连接上MySQL,
则连接上本地后将Users and Privileges 打开,将root用户的FromHost 的Limit Connectivity to Host Matching改为 % 即可
2:如果MySQLbeanch连接不上,但是mysql/bin目录下的mysql.exe能连接上,则
切换到dos下的mysql的bin目录,进行如下操作:
mysql>use mysql;
mysql>update user set host = '%' where user ='root';
mysql>flush privileges;
mysql>select 'host','user' from user where user='root';
mysql>quit
即可.
3:如果本机的mysql.exe都连不上了,则如果本机没有重要数据则重装mysql即可,
如果有则将其他机器的mysql的数据库文件夹内的mysql文件夹(比如我的机器是:MySQL\DATA\MySQLServer5.6\data\mysql),
将其中的user.frm,user.MYD,及user.MYI文件覆盖掉本机的数据库文件夹内的mysql文件夹内的user.frm,user.MYD,及user.MYI,覆盖前请停掉mysql服务,
覆盖后启动mysql,然后mysql的用户名和密码就改为从其他机器拷贝过来的机器的配置的用户名和密码
4:也可以将本机mysql数据库文件夹内的数据库文件及ibdata1文件(用于InnoDB存储引擎)备份一份,然后重装mysql,将备份的数据库文件重新放入装好的mysql数据库文件夹内,重新启动mysql即可
参考:http://www.cnblogs.com/joeylee/archive/2012/09/27/2705685.html
http://www.codesky.net/article/200912/168391.html
5:mysql用户root,密码root的数据文件见附件data.zip
6:参考http://pppcode.blog.51cto.com/2698464/510972
非常有用的mysql启动参数 --skip-grant-tables。顾名思义,就是在启动mysql时不启动grant-tables,授权表。有什么用呢?当然是忘记管理员密码后有用。
操作方法:
1、杀掉原来进行着的mysql:
rcmysqld stop
或者:
service mysqld stop
或者:
kill -TERM mysqld
2、以命令行参数启动mysql:
/usr/bin/mysqld_safe --skip-grant-tables &
3、修改管理员密码:
use mysql;
update user set password=password('yournewpasswordhere') where user='root';
flush privileges;
exit;
4、杀死mysql,重启mysql
如果你在my.cnf中的有添加"skip-grant-tables",那么任何的帐号用任何的密码(当然也包括空)都可以登录到mysql数据库了。