用户名或密码错误时也会出现此报错 你的sql语句很奇怪啊,是不是意思 update user set Password='PASSWORD' where User='root' ?
通过SQL命令设置MYSQL用户密码必须要使用PASSWORD()函数啊
可能是各位都没有经历过这个问题. 研究了一下午,最后找出了问题所在, 问题出在'root'@'localhost'上.查看下"mysql"数据下的user表,发现里面有两个"root"帐户.一个在"Host"中指定了为本地用户(localhost),而另一个root在Host中没有值(也就是说可以是任何一台主机上的). 当在"本地主机"上进行调试时,访问数据库(jdbc:mysql://localhost/test","root","")时所用到的root帐户并没有指定是本地用户(localhost)或是其他主机上的用户.所以MYSQL在用户访问验证的时候就产生混系了.到底是root@localhost还是root@anywhere?(这两个用户是各自独立的).最终造成MYSQL无法为发送请求的用户提供服务.我在更改root帐户密码时没有指定该帐户的Host的值. 所以使用sql命令修改root帐户应该指定是本地root帐户还是远程root帐户.正确的SQL命令: update user set Password=PASSWORD('***') where User='root' and Host="不填则为任意主机"所以,为了方便区分帐户,最好命名两个不同的管理员帐户来进行本地管理或远程管理.
你的sql语句很奇怪啊,是不是意思
update user set Password='PASSWORD' where User='root' ?
研究了一下午,最后找出了问题所在,
问题出在'root'@'localhost'上.查看下"mysql"数据下的user表,发现里面有两个"root"帐户.一个在"Host"中指定了为本地用户(localhost),而另一个root在Host中没有值(也就是说可以是任何一台主机上的).
当在"本地主机"上进行调试时,访问数据库(jdbc:mysql://localhost/test","root","")时所用到的root帐户并没有指定是本地用户(localhost)或是其他主机上的用户.所以MYSQL在用户访问验证的时候就产生混系了.到底是root@localhost还是root@anywhere?(这两个用户是各自独立的).最终造成MYSQL无法为发送请求的用户提供服务.我在更改root帐户密码时没有指定该帐户的Host的值.
所以使用sql命令修改root帐户应该指定是本地root帐户还是远程root帐户.正确的SQL命令:
update user set Password=PASSWORD('***') where User='root' and Host="不填则为任意主机"所以,为了方便区分帐户,最好命名两个不同的管理员帐户来进行本地管理或远程管理.