产生此情况一般有两种情况
1:账号密码写错,(相信大多数都不会犯这种低级错误)
2:权限问题
3:用户匹配问题
对应的解决方法:
一:略
二:权限问题,
增加用户所有权限,下面举例增加root用户的所有权限。
例:
1、进入mysql,创建一个新用户,将用户赋予远程登录操作数据库的权利。
格式:grant 权限 on 数据库名.表名 用户@登录主机 identified by "用户密码";
例如:grant all privileges on *.* to root@"%" identified by "root";
赋予所有权限使用:all privileges 。执行以后,会在数据库中的mysql.user表中添加一条用户记录,表示命令已经成功执行。
三:用户匹配问题
进入数据库
mysql>use mysql;
mysql>select host,user,password from user;查看是否类似下面的情况
如果有这样的,说明用户匹配错了。
可以用以下命令证明:
mysql>select user(),current_user();
可以看到两个用户不匹配。两个用户不同。
所以当我们用localhost登录的时候,就陪匹配到了::1这个host匹配中,就不需要密码,而我们用user=root,password=123去登陆。就登录不了。
如果还是不行。。。。。
在本地cmd,输入mysql -u root可以登录
mysql -u root -p123登录不了。这就能说明问题。
所以解决方法就是:删除其他的匹配host项。那么久只能匹配到%这个host项。
mysql>use mysql;
mysql>delete from user where host='::1';
mysql>delete from user where host='127.0.0.1'
mysql>delete from user where host='localhost'
那么将其他的都删除了,就可以匹配到这一项host
这样就能彻底解决该登录不了的问题了。!