找到文件my.ini(mysql路径下),找到[mysqld],添加skip-grant-tables
[mysqld]
......
skip-grant-tables
重启mysql,以root用户登录(不需要输入密码)
在sql标签下,运行以下sql语句
flush privileges
grant all privileges on *.* to root@'localhost' identified by "你的密码"
到my.ini文件下注释掉之前添加的skip-grant-tables (一定要记得这步)
重启mysql,就可以了
一开始以为是防火墙的问题,但关掉防火墙,问题依旧。琢磨了很久,得出如下的解决方法:
1,改表法。可能是帐号不允许从远程登陆,只能在localhost。
只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
mysql -u root -pvmwaremysql>use mysqlmysql>update user set host = '%' where user = 'root'mysql>select host, user from user
2,授权法。
例如,希望myuser使用mypassword从任何主机连接到mysql服务器:
GRANT ALL PRIVILEGES ON *.* TO IDENTIFIED BY 'mypassword' WITH GRANT OPTION
允许用户myuser从ip为192.168.1.3的主机连接到mysql服务器,并使用mypassword作为密码:
GRANT ALL PRIVILEGES ON *.* TO IDENTIFIED BY 'mypassword' WITH GRANT OPTION
你的MYSQL帐号不允许远程访问,因此才会报错.MYSQL中的每一个用户,都有访问的权限.这权限不仅包括对数据库的 *** 作权限,还包括远程连接权限.
MYSQL安装之后默认创建的ROOT用户,访问权限为localhost.也就是只能在本地访问.要想让它可以远程访问,可以修改成 % (任意主机)或你的PHPMYADMIN所在的服务器的IP地址.
修改的方法很简单.用ROOT进入系统,运行以下命令:
use mysql ---打开MYSQL这个库
update user set host="%" where user="root"
这样就OK了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)