问题场景是这样的:使用阿里云服务器centOS上docker部署mysql出现ssh登录root正常,但远程访问root账户访问不了
docker ps
错误1045就是简单的用户名密码错误
查看mysql数据库下面的user用户表:
发现表下有两个root用户,密码是加密过的
这个表格中确实有两个用户具有 User 列值为 'root',但它们具有不同的 Host 列值。在MySQL中,用户是通过用户名和主机(Host)组合来唯一标识的。因此,不同主机上的相同用户名被视为不同的用户。
具体来说,这两个 'root' 用户的主机是 '%' 和 'localhost'。这意味着:
'%' 主机上的 'root' 用户可以从任何主机连接到MySQL服务器。
'localhost' 主机上的 'root' 用户只能从本地主机连接到MySQL服务器。
修改%主机密码:
ALTER USER 'root'@'%' IDENTIFIED BY '123456';