OCI环境下Apex连接MySQL失败:请求排查原因及解决方案
排查OCI环境中Apex与MySQL REST Enabled SQL连接错误的方案
核心排查方向
既然DBTools能成功连接私有端点,说明数据库本身、私有端点的网络基础配置大概率正常,问题集中在Apex侧的REST服务配置、权限或细节参数上,按以下步骤逐一验证:
1. 检查MySQL REST Enabled SQL服务状态与账号权限
- 确认REST服务已启用:登录MySQL执行
若无结果,执行SELECT * FROM information_schema.ENABLED_ROLES WHERE ROLE_NAME='MYSQL_REST_SERVICE_ADMIN';SET GLOBAL mysql_rest_service_enable = ON;(永久生效需修改my.cnf配置文件添加mysql_rest_service_enable=ON)。 - 验证连接账号权限:执行
确保账号拥有SHOW GRANTS FOR '你的连接账号'@'Apex服务器IP/子网段';MYSQL_REST_SERVICE_USER角色,若没有则执行GRANT MYSQL_REST_SERVICE_USER ON *.* TO '你的连接账号'@'Apex服务器IP/子网段';
2. 核对Apex连接配置参数
- 端点URL格式:必须填写完整的REST路径,格式为
https://<私有端点IP>:8443/api/,注意末尾的/api/不能省略。 - 认证方式:不要用OCI IAM凭据,需选择
Basic Authentication,填写拥有REST权限的MySQL账号和密码。 - SSL配置:如果MySQL私有端点启用SSL,Apex连接时需勾选
Use SSL,并将MySQL的CA证书上传到Apex的证书存储中(路径:Shared Components > Security > Certificates)。
3. 网络与安全组二次验证
- 确认Apex服务器所在子网的安全组,允许出站访问MySQL私有端点的8443端口(REST Enabled SQL默认端口)。
- 确认MySQL私有端点的安全组,允许入站访问Apex服务器所在子网的IP/网段访问8443端口。
- 在Apex服务器上执行
nslookup <私有端点域名>(如果用域名而非IP),确保能解析到正确的私有IP。
4. 日志与快速连通性测试
- 查看MySQL REST服务日志(默认路径
/var/log/mysql/mysql_rest.log),搜索连接失败记录,通常会给出具体错误(如认证失败、SSL握手错误)。 - 在Apex服务器上用curl测试REST端点:
返回curl -u <MySQL账号>:<密码> https://<私有端点IP>:8443/api/version{"version":"x.x.x"}说明REST服务正常,问题在Apex配置;返回401/403说明权限/认证错误;超时则说明网络不通。
5. Apex驱动与凭据检查
- 确认Apex的
Shared Components > Web Credentials已正确配置对应MySQL账号的凭据。 - 检查
REST Enabled SQL数据源的Driver选项是否选择MySQL,确保驱动与MySQL版本兼容。
内容的提问来源于stack exchange,提问作者Abdelrahman Mamdouh
相关产品推荐
相关产品推荐

