解决mysqlAccessdeniedforuserroot@IP地址问题
⽤这个⽅法测试⽆法让所有机器都可以登录mysql服务器,只能⼀次设置单个ip登录,原因暂时不知道;
关于只能设置单个ip登录:查看musql的user表发现原因是‘%’⽤户设置了密码,在修改mysql数据库的‘%’⽤户的密码为‘’,即空的时候,就可以实现所有ip登录了在MYSQL 中,⽤远程软件登陆服务器,有时出现:Access denied for user 'root'@'localhost' www.2cto
出现这种问题,主要的原因就是权限配置的时候没有配置正确。
解决⽅法如下:
当⽤Linux/unix的tty 登陆进MYSQL 时, mysql -u root -p 会提⽰你输⼊密码,输⼊正确的密码后正常登陆。
然后在提⽰符下,打命令:show grants; 会出现root如下的权限表⽰:GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '565491d704013245' WITH GRANT OPTION
此时,注意看那个“@”后⾯的,是localhost 意思是本机登陆,,此时,如果你⽤远程登陆软件来登陆的话,会出现错误提⽰:Access denied for user 'root'@'IP 地址'。。IP地址那块是你远程机器的IP地址。
也就是服务器在告诉你,当你⽤“IP地址”登陆时,是拒绝的,因为,MYSQL权限设置⾥并没有给你对应你IP地址登陆的权限。因为刚才的SHOW GRANTS;命令结果已经告诉你了,仅限本机登陆。
那解决⽅法如下:此时,你可以尝试⽤空密码连接,是可以连接进⼊的。或者你在服务器的tty 或者pts操作台中进⼊服务器后执⾏如下的命令:
grant all privileges on *.* to 'root'@'%' with grant option;
意思是让root在所有机器都可以登陆到MYSQL服务器(拥有所有权限)。当执⾏完这条命令后,⽤客户端登陆,此时,是需要输⼊⼝令了。
GRANT ALL PRIVILEGES
1。改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登⼊mysql后,更改 "mysql" ⾥的 "user" 表⾥的"host" 项,从"localhost"改称"%"
Sql代码
1. -u root -pvmwaremysql>use mysql;
2. mysql>update user set host = '%' where user = 'root';
3. mysql>select host, user from user;
2. 授权法。例如,你想myuser使⽤mypassword从任何主机连接到mysql服务器的话。
Sql代码
1. GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH
GRANT OPTION;
2.FLUSH PRIVILEGES;
如果你想允许⽤户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使⽤mypassword作为密码
Sql代码
1. GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'19
2.168.1.3' IDENTIFIED BY
2. 'mypassword' WITH GRANT OPTION;
3. FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY
'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
如果你想允许⽤户myuser从ip为192.168.1.6的主机连接到mysql服务器的dk数据库,并使⽤mypassword作为密码Sql代码
1. GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'19
2.168.1.3' IDENTIFIED BY
2. 'mypassword' WITH GRANT OPTION;
3. FLUSH PRIVILEGES;
GRANT ALL PRIVILEGES ON dk.* TO 'myuser'@'192.168.1.3' IDENTIFIED BY
'mypassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
注意授权后必须FLUSH PRIVILEGES;否则⽆法⽴即⽣效。
另外⼀种⽅法.
在安装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
access转mysql教程视频/
/退出MySQL服务器
这样就可以在其它任何的主机上以root⾝份登录啦!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论