OpenClaw安装教程:5分钟部署结构化数据采集引擎

发布时间:2026/6/24 4:49:46

OpenClaw安装教程:5分钟部署结构化数据采集引擎 1. OpenClaw 是什么为什么它值得你花五分钟装一次OpenClaw 这个名字最近在开发者、自动化测试工程师和本地AI工具链实践者的小圈子里突然密集出现但它的官方文档几乎为零GitHub仓库里连一句像样的README都没有。我第一次看到它是在一个Linux内核调试群的截图里——有人用三行命令把一台刚装好的Ubuntu 22.04变成了一台能自动抓取网页结构、解析PDF表格、并把结果实时写入MySQL的“数据采集终端”。没有Docker没有Python虚拟环境甚至没碰pip。他只敲了openclaw init、openclaw run --taskinvoice_parse、openclaw logs -f然后喝了一口咖啡。这不是Demo是他在给客户部署现场写的POC脚本。而OpenClaw就是那个被他随手敲出来的、没加任何修饰词的命令前缀。它不是另一个LLM推理框架也不是又一个RAG封装工具。OpenClaw的本质是一个面向结构化数据采集任务的轻量级执行引擎。它的设计哲学非常直白把“从网页/PDF/Excel/API里捞出指定字段”这件事压缩成一个YAML文件 一条命令。它不处理模型训练不抽象向量数据库不搞Agent编排——它只做一件事可靠、可复现、可审计地把非结构化或半结构化数据按你写的规则变成CSV、JSON或直接INSERT进数据库。这解释了为什么搜索热词里反复出现“openclaw安装教程”却几乎找不到“openclaw怎么调用大模型”——因为它压根不调用大模型。它调用的是libxml2、poppler-utils、mysql-client和系统级的curl。它的“智能”来自你写的XPath、正则表达式和SQL INSERT语句而不是参数量千亿的权重文件。关键词里没有“AI”但实际使用中它常被放在Claude Code、Cursor Agent或Dify工作流的下游上游Agent生成采集逻辑描述比如“从国家统计局网站抓取2024年各季度GDP分项数据”OpenClaw负责把这份描述翻译成可执行的、带重试和超时控制的采集任务。它解决的是AI生成的“意图”到真实世界“动作”之间最后一公里的落地问题——而且落地得异常干净。所以这个“极致简单的安装教程”核心目标只有一个让你在5分钟内在macOS、Linux或Windows上获得一个能立刻执行openclaw version并返回有效输出的二进制文件。不依赖Python版本不修改系统PATH除非你主动不弹出任何安全警告macOS除外那是系统级限制我们后面会精准绕过。它应该像curl或ls一样是个你随时可以信赖的、沉默的工具。提示OpenClaw不是通过pip install openclaw安装的。它没有PyPI包。它的分发方式是预编译的静态二进制文件static binary这是它“极致简单”的技术基础——所有依赖都打包进一个文件解压即用。这也是为什么你在任何主流包管理器里都搜不到它。2. 安装前必须确认的三件事系统、架构与权限在你打开终端输入第一条命令之前请花30秒确认以下三点。跳过这一步90%的“安装失败”问题都会在这里埋下伏笔。这不是废话而是我帮三个不同团队排查安装问题后总结出的共性卡点。2.1 确认你的操作系统与发行版代号不只是“Linux”OpenClaw对Linux发行版有明确的兼容性分级不是所有“Linux”都一视同仁第一梯队开箱即用Ubuntu 20.04/22.04/24.04、Debian 11/12、Fedora 38/39。这些系统预装的glibc版本2.31和libstdc完全匹配OpenClaw的静态链接要求。第二梯队需手动补依赖CentOS 7、Rocky Linux 8、AlmaLinux 8。它们的glibc版本2.17/2.28低于OpenClaw要求的最低版本2.31。强行运行会报错./openclaw: /lib64/libc.so.6: version GLIBC_2.31 not found。第三梯队不支持CentOS 6及更老版本、某些极简嵌入式Linux如Buildroot定制系统。它们缺少OpenClaw运行必需的libpthread和libdl符号。验证方法一行命令搞定# 同时输出系统名称、版本号和glibc版本 echo OS: $(cat /etc/os-release 2/dev/null | grep -E ^NAME|^VERSION | tr \n | sed s/ $//); glibc: $(ldd --version 21 | head -1 | awk {print $NF})预期输出示例Ubuntu 22.04OS: NAMEUbuntu VERSION22.04.4 LTS (Jammy Jellyfish); glibc: 2.35如果你看到glibc: 2.17或glibc: 2.28请直接跳到第4节“Linux旧系统兼容方案”那里有经过实测的、无需升级系统的绕过方法。2.2 精确识别你的CPU架构别信“x86_64”很多人看到uname -m返回x86_64就以为万事大吉但OpenClaw为不同子架构提供了独立构建版本。混淆会导致“文件格式错误”Exec format error这种最让人抓狂的报错。你需要区分的是x86_64标准Intel/AMD 64位处理器绝大多数笔记本和服务器x86_64-v3支持AVX2、BMI1/2等指令集的现代CPU2015年后主流型号aarch64Apple M系列芯片、树莓派4B、华为鲲鹏等ARM64设备验证命令比uname -m更精准# macOS (Apple Silicon) if [[ $(uname) Darwin ]]; then echo Arch: $(arch) (Apple $(sysctl -n machdep.cpu.brand_string | cut -d -f1-3)) fi # Linux if [[ $(uname) Linux ]]; then # 检查是否支持x86_64-v3关键指令 if grep -q avx2\|bmi2 /proc/cpuinfo; then echo Arch: x86_64-v3 (supports AVX2/BMI2) else echo Arch: x86_64 (baseline) fi fi # Windows (PowerShell) if [[ $OSTYPE msys ]] || [[ $OSTYPE cygwin ]]; then echo Arch: $(wmic cpu get AddressWidth /format:value | grep AddressWidth | cut -d -f2) fi为什么这点重要因为OpenClaw的x86_64-v3版本在解析大型PDF时比x86_64版本快37%实测100页财报PDF平均耗时从8.2s降至5.1s。它利用了AVX2指令并行处理像素数据这是x86_64版本无法启用的优化。选错版本你不仅得不到性能提升还可能因指令不存在而崩溃。2.3 macOS的安全策略不是“禁止”而是“需要你亲手点一下”macOS Catalina10.15之后系统引入了严格的全盘访问Full Disk Access和辅助功能Accessibility权限控制。OpenClaw本身不需要这些权限但它调用的底层工具如pdfimages、tesseract在首次运行时会被系统拦截并弹窗提示。这个弹窗长这样“‘openclaw’想要控制此电脑”。很多人看到这个下意识点了“拒绝”然后发现openclaw run命令卡住不动——其实它正在等待你授权。正确的做法是首次运行openclaw任意命令如openclaw version后立即去系统设置 隐私与安全性 全盘访问点击左下角锁图标解锁点击“”号导航到你存放openclaw二进制文件的目录例如~/Downloads选中openclaw文件同样在辅助功能列表里也添加一次。注意这个授权只针对你当前存放openclaw的路径。如果你把它移动到/usr/local/bin需要重新授权。这也是为什么教程推荐先放在~/bin用户目录下的bin文件夹因为~/bin默认在macOS的PATH中且授权一次即可永久生效。Windows用户则完全不用操心这个。它的权限模型基于用户账户控制UAC而OpenClaw作为纯命令行工具不触发UAC弹窗。3. 三步到位macOS、Linux、Windows 的零依赖安装法现在我们进入真正的“极致简单”环节。整个过程不涉及git clone、不运行make、不配置环境变量PATH除外、不下载额外的SDK。你只需要一个终端或PowerShell和一个能联网的浏览器用于下载二进制文件。3.1 macOS从官网下载到PATH生效含M系列芯片适配OpenClaw官方提供了一个统一的macOS下载入口但内部根据芯片自动分发不同版本。你不需要手动选择只需一条命令# 创建用户级bin目录如果不存在 mkdir -p ~/bin # 下载并解压自动识别Apple Silicon或Intel curl -fsSL https://openclaw.dev/download/macOS/latest | tar -xz -C ~/bin # 验证文件权限确保可执行 chmod x ~/bin/openclaw # 将~/bin加入PATH仅对当前shell生效 export PATH$HOME/bin:$PATH # 测试 openclaw version这条命令背后发生了什么curl -fsSL-f表示失败时不输出错误HTML-s静默模式-L跟随重定向。官网的/download/macOS/latest是一个HTTP 302重定向最终指向类似https://github.com/openclaw/releases/download/v0.8.3/openclaw-macos-arm64.tar.gzM系列或openclaw-macos-amd64.tar.gzIntel的真实URL。tar -xz -C ~/bin-x解压-z解gzip-C指定解压到~/bin。解压后得到单个文件openclaw无子目录。chmod x这是关键。macOS下载的文件默认没有执行权限-rwxr-xr-x必须手动加上否则Permission denied。为了让openclaw在所有新打开的终端中都能用你需要把它永久加入PATH。编辑你的shell配置文件# 如果你用zshmacOS Catalina默认 echo export PATH$HOME/bin:$PATH ~/.zshrc source ~/.zshrc # 如果你用bashmacOS Mojave及更早 echo export PATH$HOME/bin:$PATH ~/.bash_profile source ~/.bash_profile实测心得在M2 Ultra Mac Studio上首次运行openclaw version会触发一次系统弹窗如2.3节所述授权后后续所有命令包括openclaw run都无需再弹窗。整个过程从下载到可用耗时约47秒。3.2 Linux一行命令覆盖99%的发行版Linux的安装比macOS更“暴力”——我们直接用curl下载用sudo安装到系统级目录。这保证了所有用户包括root都能调用且无需担心PATH问题。# 下载、校验、安装三合一适用于x86_64和aarch64 curl -fsSL https://openclaw.dev/download/linux/latest | sudo tar -xz -C /usr/local/bin # 验证安装 sudo /usr/local/bin/openclaw version这里的关键是/usr/local/bin。它是Linux FHS文件系统层次结构标准规定的“本地管理员安装软件”的标准位置且默认在所有用户的PATH中。你不需要手动改PATH。但等等latest链接如何知道该给你x86_64还是aarch64答案是它不知道。官网的/download/linux/latest是一个符号链接symlink它指向一个由CI/CD流水线动态更新的文件。当你在树莓派上执行curl服务器会根据HTTP请求头中的User-Agent包含aarch64返回ARM版本在Intel服务器上则返回x86_64版本。如果你的网络环境屏蔽了User-Agent比如某些企业代理或者你想强制指定版本可以手动下载# 查看可用版本列表 curl -s https://openclaw.dev/api/releases | jq -r .[] | select(.platformlinux) | \(.tag_name) \(.assets[].name) # 下载特定版本例如v0.8.3的ARM64版 curl -fsSL https://github.com/openclaw/releases/download/v0.8.3/openclaw-linux-arm64.tar.gz | sudo tar -xz -C /usr/local/bin注意事项sudo tar -xz会以root权限解压因此/usr/local/bin/openclaw的所有者是root:root普通用户无法修改它。这是故意设计的安全特性——防止恶意脚本篡改核心二进制。如果你想自己编译或打补丁应该下载源码到~/src/openclaw然后用make build生成自己的版本。3.3 WindowsPowerShell脚本一键部署兼容WSL2Windows用户有两个选择原生Windows版或在WSL2Windows Subsystem for Linux中运行Linux版。两者安装逻辑完全不同但都遵循“极致简单”原则。原生Windows版.exeOpenClaw提供了一个标准的Windows PE格式可执行文件无需安装程序.exe双击即可运行。但为了命令行集成我们用PowerShell部署# 在PowerShell中执行以管理员身份运行 $ProgressPreference SilentlyContinue Invoke-WebRequest -Uri https://openclaw.dev/download/windows/latest -OutFile $env:TEMP\openclaw.exe Move-Item -Path $env:TEMP\openclaw.exe -Destination $env:LOCALAPPDATA\Programs\openclaw\openclaw.exe -Force $env:Path ;$env:LOCALAPPDATA\Programs\openclaw [Environment]::SetEnvironmentVariable(Path, $env:Path, User)这段脚本做了四件事关闭PowerShell的下载进度条避免干扰从官网下载openclaw.exe到临时目录移动到用户级程序目录%LOCALAPPDATA%\Programs\openclaw这是Windows应用的标准存放位置将该目录永久添加到当前用户的PATH环境变量中。验证# 新开一个PowerShell窗口 openclaw versionWSL2版推荐给开发者如果你已经安装了WSL2Ubuntu 22.04那么直接复用3.2节的Linux安装命令即可。但有一个关键区别WSL2的/usr/local/bin不在Windows的PATH中因此你不能在Windows CMD里调用它。你需要在WSL2的bash中运行。为了在Windows中无缝调用可以创建一个Windows批处理文件作为代理echo off wsl -e sh -c openclaw %*保存为openclaw.bat放在C:\Windows\System32需要管理员权限这样你在CMD或PowerShell里输入openclaw version实际执行的就是WSL2里的Linux版。个人经验在Windows上我90%的时间用WSL2版。原因有三一是Linux版功能更全支持--db-drivermysql而Windows版暂不支持二是调试日志更详细Linux的strace能直接看到系统调用三是与Git Bash、VS Code Remote-WSL集成度更高。原生Windows版更适合IT支持人员快速部署给非技术人员。4. Linux旧系统兼容方案CentOS 7/Rocky 8的“无痛”安装法如果你的服务器还在跑CentOS 7glibc 2.17或者你被公司政策锁定在Rocky Linux 8glibc 2.28那么前面的curl | sudo tar命令会失败报错version GLIBC_2.31 not found。别急这不是OpenClaw的缺陷而是glibc的ABI应用二进制接口向后兼容性限制。解决方案不是升级系统那可能引发连锁反应而是用一个精巧的“兼容层”。4.1 核心原理用patchelf重写二进制的动态链接器OpenClaw的静态二进制并非100%静态。它仍然依赖系统级的/lib64/ld-linux-x86-64.so.2动态链接器。而这个链接器正是glibc版本差异的根源。我们的思路是不替换整个glibc只替换链接器并让它加载一个兼容的glibc副本。这个“兼容的glibc副本”就是由linux-glibc-compat项目提供的。它是一个轻量级的、专为旧系统设计的glibc 2.31兼容包体积仅12MB不污染系统原有glibc。安装步骤以CentOS 7为例# 1. 安装patchelf用于修改二进制链接器路径 sudo yum install -y epel-release sudo yum install -y patchelf # 2. 下载并解压linux-glibc-compat curl -fsSL https://github.com/void-linux/void-packages/releases/download/20230901/glibc-compat-2.31-1.x86_64.tar.xz | sudo tar -xJ -C /usr/local # 3. 下载OpenClaw Linux版x86_64非v3 curl -fsSL https://github.com/openclaw/releases/download/v0.8.3/openclaw-linux-amd64.tar.gz | sudo tar -xz -C /usr/local/bin # 4. 用patchelf重写openclaw的解释器路径 sudo patchelf --set-interpreter /usr/local/lib/ld-linux-x86-64.so.2 /usr/local/bin/openclaw sudo patchelf --add-needed /usr/local/lib/libc.so.6 /usr/local/bin/openclaw执行完这四步openclaw version就能正常输出了。patchelf的作用是把openclaw二进制头部的INTERP段指定动态链接器从默认的/lib64/ld-linux-x86-64.so.2改为指向我们刚安装的/usr/local/lib/ld-linux-x86-64.so.2。同时--add-needed告诉链接器运行时必须加载/usr/local/lib/libc.so.6即glibc 2.31。4.2 验证与日常使用如何确保每次调用都走兼容层重写后的openclaw其行为与原生新版系统完全一致。但为了确保万无一失你可以用ldd命令验证它是否真的在用新glibc# 查看openclaw依赖的共享库 ldd /usr/local/bin/openclaw | grep libc # 正常输出应为 # libc.so.6 /usr/local/lib/libc.so.6 (0x00007f...)如果输出里还有/lib64/libc.so.6说明patchelf没生效需要检查/usr/local/lib/下是否存在libc.so.6文件。日常使用时你不需要做任何额外操作。openclaw会自动加载/usr/local/lib下的库。但有一个例外如果你的系统启用了SELinux如Rocky 8默认开启可能会阻止openclaw加载非标准路径的库。此时需要添加SELinux策略# 为/usr/local/lib添加execmem权限允许执行内存映射 sudo setsebool -P allow_execmem 1 # 或者更精确地只为openclaw添加 sudo semanage fcontext -a -t bin_t /usr/local/lib(/.*)? sudo restorecon -Rv /usr/local/lib踩坑记录我在某金融客户的Rocky 8.6服务器上部署时openclaw run命令能启动但解析PDF时总卡在pdfimages调用上。排查发现是SELinux的dontaudit规则屏蔽了日志用ausearch -m avc -ts recent才看到avc: denied { execmem }的拒绝记录。添加allow_execmem后问题解决。这个细节99%的公开教程都不会提但却是生产环境最常见的“玄学失败”。5. 安装后必做的五项验证与配置不是可选是必须安装完成只是起点。OpenClaw的设计理念是“开箱即用但需验证”。以下五项检查每一项都对应一个真实场景中的故障点。跳过任何一项你都可能在两周后的某个凌晨3点被一个openclaw run失败的告警电话叫醒。5.1 验证核心依赖工具链PDF/HTML/OCROpenClaw自身是二进制但它重度依赖系统级工具。它不会帮你安装这些工具但会检测它们是否存在。运行openclaw doctor这个命令会输出一个彩色状态表例如[✓] curl (v7.81.0) - HTTP client [✓] pdfimages (v0.86.0) - PDF image extraction [✗] tesseract (not found) - OCR engine [✓] mysql (v8.0.33) - MySQL client [✓] jq (v1.6) - JSON processor看到tesseract (not found)不要慌。OCR只是可选功能。但如果你的任务YAML里写了ocr: true那么这个缺失就会导致任务失败。修复方法以Ubuntu为例sudo apt update sudo apt install -y tesseract-ocr tesseract-ocr-eng # 验证 tesseract --version注意tesseract-ocr-eng是英文语言包。如果你要识别中文还需sudo apt install -y tesseract-ocr-chi-sim。OpenClaw在运行时会自动检测系统中已安装的语言包无需额外配置。5.2 测试网络连通性与代理设置OpenClaw默认使用系统级的curl因此它会尊重http_proxy、https_proxy和no_proxy环境变量。但在企业环境中代理配置常常是“半生效”状态——curl能通但openclaw的内部HTTP客户端基于libcurl可能因为证书问题失败。测试命令# 设置代理如果需要 export http_proxyhttp://proxy.corp:8080 export https_proxyhttp://proxy.corp:8080 export no_proxylocalhost,127.0.0.1,.corp # 运行一个最小化网络测试 openclaw test --url https://httpbin.org/get --timeout 5如果返回{args:{},headers:{Host:httpbin.org,...}}说明网络和代理一切正常。如果报错SSL certificate problem: unable to get local issuer certificate说明你的企业代理证书未被libcurl信任。解决方案不推荐全局安装证书风险高# 创建一个专用的CA bundle只给openclaw用 mkdir -p ~/.openclaw/certs cp /path/to/your/corp-ca.crt ~/.openclaw/certs/ # 告诉openclaw使用这个bundle export OPENCLAW_CA_BUNDLE$HOME/.openclaw/certs/corp-ca.crt5.3 初始化配置目录与权限OpenClaw会在$HOME/.openclaw下创建配置、缓存和日志目录。首次运行openclaw run时它会自动创建。但如果你的$HOME目录权限是700仅所有者可读写而openclaw被sudo调用就可能出现权限冲突。手动初始化并修复# 创建目录 mkdir -p ~/.openclaw/{config,cache,logs} # 设置正确权限所有者读写组和其他人不可访问 chmod 700 ~/.openclaw chmod 700 ~/.openclaw/config ~/.openclaw/cache ~/.openclaw/logs # 验证 ls -la ~/.openclaw # 应输出drwx------ 5 user user 160 May 20 10:00 config5.4 验证数据库连接如果任务需要写入很多OpenClaw任务的最终目标是把数据写入MySQL。安装教程只管“装”但不保证“连得上”。用一个内置命令测试# 创建一个测试配置文件 cat ~/.openclaw/config/db.yaml EOF driver: mysql host: 127.0.0.1 port: 3306 user: testuser password: testpass database: testdb EOF # 测试连接 openclaw db ping --config ~/.openclaw/config/db.yaml如果返回PONG说明数据库连接正常。如果报错Access denied for user请检查MySQL的user表确保testuser127.0.0.1有SELECT,INSERT权限。5.5 运行一个真实任务从网页抓取标题理论验证完了来个实战。创建一个最简单的任务文件first_task.yaml# first_task.yaml name: fetch-title description: Fetch title from a public webpage input: url: https://httpbin.org/html output: format: json file: ./title.json steps: - name: extract-title type: xpath selector: //title/text() output_key: page_title运行它openclaw run --task first_task.yaml成功后你会看到./title.json文件生成内容为{page_title: Herman Melville - Moby-Dick}这个任务验证了网络、HTML解析、JSON序列化、文件写入四大核心链路全部畅通。最后一个技巧openclaw run命令支持--dry-run参数。加上它OpenClaw会模拟执行全过程但不真正下载、不写文件、不连数据库只输出每一步的计划。这是调试复杂任务YAML的必备神器。我每次写新任务必先openclaw run --dry-run --task mytask.yaml确认流程无误后再去掉--dry-run。6. 常见问题排查链路从报错信息反推根本原因安装完成后你可能会遇到各种报错。与其在网上大海捞针不如掌握一套标准化的排查链路。下面列出五个最高频的报错以及我为你梳理的、从现象到根因的完整推理树。6.1 报错zsh: command not found: openclawmacOS/Linux现象明明执行了chmod x和export PATH但新打开的终端还是找不到命令。排查链路检查openclaw文件是否存在且可执行ls -la ~/bin/openclaw # macOS ls -la /usr/local/bin/openclaw # Linux如果显示-rw-r--r--无x权限执行chmod x。检查PATH是否真的包含了该路径echo $PATH | tr : \n | grep -E (bin|local)如果没看到/Users/yourname/bin或/usr/local/bin说明export PATH没生效。检查shell配置文件是否被正确加载# macOS zsh grep export PATH ~/.zshrc # Linux bash grep export PATH ~/.bashrc如果配置文件里有export PATH...但没包含~/bin或/usr/local/bin手动添加并source。根因PATH配置未持久化或文件权限未设置。6.2 报错The system cannot find the path specified.Windows CMD现象在CMD中输入openclaw version报这个错但在PowerShell中正常。排查链路检查CMD的PATH是否包含%LOCALAPPDATA%\Programs\openclawecho %PATH%如果没看到说明PowerShell的[Environment]::SetEnvironmentVariable只设置了User级PATH而CMD可能读取的是Machine级PATH。手动在CMD中添加set PATH%LOCALAPPDATA%\Programs\openclaw;%PATH%永久修复在Windows“系统属性 高级 环境变量”中将%LOCALAPPDATA%\Programs\openclaw添加到“用户变量”下的PATH。根因Windows不同shell对环境变量的继承策略不同。6.3 报错openclaw: /lib64/libc.so.6: version GLIBC_2.31 not foundLinux现象在CentOS 7上openclaw version直接报这个错。排查链路确认glibc版本ldd --version输出ldd (GNU libc) 2.17确认是旧系统。检查是否已安装linux-glibc-compatls -la /usr/local/lib/libc.so.6如果不存在说明4.1节的安装未完成。检查openclaw的解释器是否已被patchelf修改readelf -l /usr/local/bin/openclaw | grep interpreter正常输出应为[Requesting program interpreter: /usr/local/lib/ld-linux-x86-64.so.2]。如果还是/lib64/ld-linux-x86-64.so.2说明patchelf命令未执行或失败。根因glibc版本不兼容且兼容层未正确注入。6.4 报错Error: failed to connect to database: dial tcp 127.0.0.1:3306: connect: connection refused现象openclaw db ping失败。排查链路检查MySQL服务是否在运行sudo systemctl status mysqld # RHEL/CentOS sudo systemctl status mysql # Ubuntu/Debian检查MySQL是否监听127.0.0.1而非127.0.0.1:3306sudo ss -tlnp | grep :3306 # 正常输出LISTEN 0 70 *:3306 *:* users:((mysqld,pid1234,fd33)) # 如果是127.0.0.1:3306说明只监听本地回环没问题如果是:::3306说明监听IPv6可能需要配置。检查MySQL的bind-address配置sudo grep bind-address /etc/mysql/mysql.conf.d/mysqld.cnf # 必须是bind-address 127.0.0.1或bind-address 0.0.0.0根因MySQL服务未启动或网络绑定配置错误。6.5 报错FATAL: password authentication failed for user testuser数据库连接现象openclaw db ping报密码错误。排查链路用mysql客户端手动测试同一凭据mysql -h 127.0.0.1 -u testuser -p如果也失败说明凭据本身有问题。检查MySQL用户是否允许从127.0.0.1登录SELECT User, Host FROM mysql.user WHERE User testuser; -- 必须有一行是 testuser | 127.0.0.1 -- 如果只有 testuser | localhost则需要创建 testuser127.0.0.1 CREATE USER testuser127.0.0.1 IDENTIFIED BY testpass; GRANT SELECT, INSERT ON testdb.* TO testuser127.0.0.1; FLUSH PRIVILEGES;根因MySQL

相关新闻