1.问题
帮同事搭建一台云服务器,配置好远程连接测试可用 回去服务器登录数据库发现无法登录了
报错 :ERROR 1045 (28000): Access denied for user ‘root’@‘localhost’ (using password: YES)
百度网上大部分文章全部都是不明所以让使用暴力手法重新设置数据库密码还有权限问题。因为我配置过权限所以不是权限问题。
还好可以远程登录到数据库 远程连接上查看了下用户表发现:
可以发现host字段的 localhost和%重复掉了,想着删除localhost不会有影响 抱着试一下的心态删除掉localhost这条数据 flush privileges; 一下发现服务器就可以登录数据库了。
2.总结
使用 GRANT ALL PRIVILEGES ON . TO ‘root’@’%’ IDENTIFIED BY ‘xxx’ WITH GRANT OPTION; (所有host都可以使用root 密码xxx登录 并且授权所有特权)命令配置远程登录时原本本地登录localhost:root得到保留 在服务器本地登录时优先匹配(冲突?)了,导致登录报错。
遇到问题百度要有自己的思考,假如我盲目地去尝试一下午又没了…