1,改表法。
可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%" mysql -u root -pvmwaremysql>use mysql; mysql>update user set host = '%' where user = 'root'; mysql>select host, user from user;
2,授权法。 在安装mysql的机器上运行: 1、d:\mysql\bin\>mysql -h localhost -u root //这样应该可以进入MySQL服务器 2、mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION //赋予任何主机访问数据的权限 3、mysql>FLUSH PRIVILEGES //修改生效 4、mysql>EXIT //退出MySQL服务器 这样就可以在其它任何的主机上以root身份登录啦。 自己测试两种方法都不行,感觉很奇怪,于是自己测试: 找到MySQL的文件位置,在cmd中输入 cd mysql.exe的文件位置(一般在MySQL安装目录下bin文件下) 输入mysql -u root -p 输入登录密码登录MySQL
在MySQL里直接输入GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION ,会出现如下图 这里是由于没有以英文分号结尾导致的。 输入带分号的语句试试: 提示未找到行。 我决定先还是采用第一种方法,按照第一种方法的代码,输入: mysql -u root -p //这是登录 mysql>use mysql; // mysql>update user set host = '%' where user = 'root'; // mysql>select host, user from user; // 执行结果如下图 连接远程MySQL,还是没连接上,于是再试试第二种方式 输入: d:\mysql\bin\>mysql -h localhost -u root mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'WITH GRANT OPTION; mysql>FLUSH PRIVILEGES; mysql>EXIT; 注意这里一定要以英文分号结尾!!! 执行结果如下图 这时没有上面的ERROR 1133错误了,经过测试,已经能连接到远程服务器了。 总的执行步骤如下:
参考文章:
http://www.cnblogs.com/ycsfwhh/archive/2012/08/07/2626597.html
http://zhidao.baidu.com/link?url=knBlHE7vm912Lr_1c1OKlL_OYoyuuYQrRo4zLHbBYytBsjAP1VRCJFtZAOkBMMzDm_2kk69UlrE4RDdMwUO6X6SfFjRYKoUTMYnVPZrIvvm