通过OCP安装obproxy,连接数据库时,在obproxy本机连没问题,在别的机器就报Access denied for user root@tenant1@'xxx.xxx.xxx.xxx',是什么问题?数据库root配的host都是%
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您描述的问题,通过OCP安装的 obproxy 在本机连接数据库正常,但在其他机器上连接时出现 Access denied for user root@tenant1@'xxx.xxx.xxx.xxx' 的错误,尽管数据库的 root 用户配置的 host 是 %。以下是问题的可能原因及解决方法:
用户权限问题
尽管 root 用户的 host 配置为 %,表示允许从任意主机连接,但可能存在以下情况:
root@tenant1 用户的权限未正确配置,导致在其他机器上无法访问。DenyUsers 或 AllowUsers),覆盖了 % 的通用规则。网络访问限制
obproxy 的配置可能限制了外部机器的访问。认证信息不匹配
tenant1)可能与数据库中的配置不一致。obproxy 配置问题
obproxy 的路由配置可能未正确指向目标数据库实例。obproxy 的监听地址或端口可能未对外部机器开放。确认 root@tenant1 用户的权限是否正确配置:
SHOW GRANTS FOR 'root'@'tenant1';
如果权限不足,请重新授权:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'your_password';
FLUSH PRIVILEGES;
注意:确保 host 为 %,表示允许从任意主机连接。
如果存在更具体的权限限制(如 DenyUsers 或 AllowUsers),请检查并调整相关配置。
0.0.0.0/0,但建议仅添加实际需要的 IP 段以提高安全性)。obproxy 服务以应用更改。roottenant1obproxy 配置obproxy 的监听地址和端口是否对外部机器开放:
obproxy 的配置文件(通常位于 /etc/obproxy/obproxy.conf 或类似路径),确保监听地址为 0.0.0.0,而非 127.0.0.1。obproxy 的监听端口(默认为 2883)。obproxy 的路由配置是否正确指向目标数据库实例:
obproxy 的路由表:obproxy -c "SHOW PROXYCONFIG;"
obproxy。obproxy 的监听地址和端口:
telnet 或 nc 测试连通性:telnet <obproxy_ip> 2883
0.0.0.0/0,建议仅添加实际需要的 IP 地址或 IP 段。obproxy 和数据库的日志文件,定位具体错误原因。通过以上步骤,您可以逐步排查并解决 Access denied for user root@tenant1@'xxx.xxx.xxx.xxx' 的问题。如果仍有疑问,请提供更多上下文信息(如 obproxy 配置、数据库日志等),以便进一步分析。