本地MYSQL输入正确的密码也无法登录
ERROR 1045 (28000): Access denied for user ‘root’@’::1’ (using password: YES)
今天本来需要修改一些服务器mysql的权限配置,却发现输入了明明正确的密码却无法登录,反而显示密码错误。。。
这就让人非常的费解了,因为平时执行sql时,会经常使用MySQLAdministrator之类的可视化工具登录都没有问题,所以判断密码肯定是正确的。
在稍作观察之后发现,上图输入完 mysql -u root -p 之后出现的错误指令是 root@::1而不是root@127.0.0.1,也不是 root@localhost。
所以我判断是我root的登录ip不对,虽然::1是ipv6的127.0.0.1,可是无法和我们拥有密码的ipv4的127.0.0.1相互映射。
解决方案:
// 在命令行通过 -h 指令指定ip来登录mysql
mysql -h 127.0.0.1 -u root -p
问题解决,但是之后不能每次都输入-h,这也怪麻烦的,所以后续可以通过修改mysql表的root的密码权限来实现@::1也可以直接登录。(也就是开放mysql远程连接的方式实现)
// ‘%’代表全部ip,如果不希望被外人连了,请配置好防火墙,或者把‘%’替换成你的ip
// '123456'表示你的密码
grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
flush privileges;