You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GCloud环境下ProxySQL健康检查配置问题咨询

问题分析与解决步骤

1. 先明确错误码13的本质

错误码13对应Linux的EACCES,就是权限被拒绝——要么你的verify_proxy_config.sh脚本本身没执行权限,要么执行脚本的用户没权限访问所需资源。

2. 检查脚本基础权限

  • 先看脚本有没有可执行权限:
    跑这个命令查权限:
    ls -l verify_proxy_config.sh
    
    如果输出里没x标记(比如显示-rw-r--r--),赶紧加执行权限:
    chmod +x verify_proxy_config.sh
    
  • 再确认脚本所在目录对ProxySQL运行用户有读权限:
    ProxySQL默认用proxysql用户跑,查目录权限:
    ls -ld /path/to/script/directory
    
    确保目录权限是drwxr-xr-x这类,让proxysql用户能读能进。

3. 确认脚本的执行用户

ProxySQL的REST API是用ProxySQL进程的用户身份执行脚本的(默认proxysql)。如果脚本里有需要高权限的操作(比如读系统文件、改配置),肯定会被拒。

  • 可以在脚本开头加两行调试命令,看看实际执行用户是谁:
    #!/bin/bash
    whoami >> /tmp/script_debug.log
    id >> /tmp/script_debug.log
    # 原脚本内容...
    
    执行完看/tmp/script_debug.log,确认用户权限够不够。

4. 检查Docker镜像的权限配置

因为是Docker镜像,构建时必须把权限设置对:

  • Dockerfile里复制脚本后,要显式加执行权限:
    COPY verify_proxy_config.sh /usr/local/bin/
    RUN chmod +x /usr/local/bin/verify_proxy_config.sh
    
  • 别随便用USER切到非特权用户,除非这个用户对脚本和依赖资源都有权限。

5. 核对ProxySQL的REST API配置

进ProxySQL admin界面查配置是否正确:

mysql -u admin -padmin -h 127.0.0.1 -P 6032

然后执行SQL看同步脚本的配置:

SELECT * FROM global_variables WHERE variable_name LIKE '%sync%';

确保restapi_sync_status_script指向的是容器内脚本的绝对路径,而且这个路径确实存在。

6. 直接调试脚本

用ProxySQL运行用户身份直接执行脚本,看能不能正常跑:

su - proxysql -c "/path/to/verify_proxy_config.sh"

如果报错,根据错误提示继续排查(比如缺依赖、文件读不了之类的)。

7. GCloud实例组的额外检查

你用的是127.0.0.1访问,属于容器内部健康检查,还要确认:

  • ProxySQL的REST API已经开了:查admin_variables里的restapi_enabled是不是true,restapi_port是不是6070。
  • 容器内部没有防火墙或iptables规则拦127.0.0.1访问6070端口。

内容的提问来源于stack exchange,提问作者Hitesh patel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 19:15:53