我在k8s集群上运行了一个mysql数据库。以前,当我通过mysql -u root -p登录并输入密码时,它列出了所有的数据库。但我的应用程序无法连接到该数据库,并向1045, "Access denied for user 'root'@'ipaddress' (using password: YES)"显示只有一台主机,即%,而用户是root用户
我也更新了秘密并重新启动部署,但仍然显示了上述错误。
然后运行此命令将所有权限授予root用户。
GRANT ALL ON root.* TO 'root'@'localhost' IDENTIFIED BY 'password';它为根用户再创建一个主机,即本地主机。现在当我尝试用
mysql -u root -p它不是列出我的数据库,只是显示

现在宿主是本地宿主。我该怎么做才能拿回我的数据库。
发布于 2022-10-04 17:41:45
在MySQL中,对由用户名和主机名[1]。组成的“帐户”授予权限,因此在授予方面:
myuser@127.0.0.1
myuser@192.168.1.1以上是两个不同的用户。权限方面的通配符是%。然而,正如解释的那样,%和localhost是相互排斥的。
因此,考虑到这一点,您需要运行一些类似于:
CREATE USER 'root'@'%' IDENTIFIED BY 'changeme';
GRANT ALL PRIVILEGES ON your_database_name.* TO 'root'@'%';以便启用来自不同主机的连接。请记住,应该避免使用用户名根。相反,使用专用用户来满足您的需要。
https://stackoverflow.com/questions/73949032
复制相似问题