Skip to content

在 Windows 上安装 Percona Toolkit

Percona Toolkit 是 Perl 脚本集合,官方只提供 Linux 仓库与包,没有 Windows 原生安装程序。但在 Windows 上仍有两条可行路径:

  • 直接运行单个工具(Windows 原生):装好 Perl 运行环境,取单个脚本即可。纯 Perl 的分析类工具在 Windows 上能正常工作,最常见的 pt-query-digest 慢查询分析就是这样用的。
  • 跑完整工具集 / 依赖 Linux 的工具:用 WSL 或 Docker 起一套 Linux 环境,按 Linux 步骤安装整个 toolkit。

方式一:安装 Perl 后直接运行单个工具(Windows 原生)

适合只想用 pt-query-digest 等纯 Perl 工具、不想装 Linux 子系统的场景。本质做法是:装一个 Windows 上的 Perl,再从 percona.com/get/<工具名> 取对应脚本直接跑。

1. 安装 Strawberry Perl

Windows 默认不带 Perl,需要先装一个完整的 Perl 发行版。Strawberry Perl 是完全开源的 Windows Perl 环境,自带编译器与常用模块:

安装完成后打开 cmd,验证 Perl 可用:

bat
perl -version

环境变量

若提示 perl 不是内部或外部命令,说明安装目录未加入 PATH。请把 Strawberry Perl 的 perl\bin 目录(默认如 C:\Strawberry\perl\bin)加入系统环境变量 PATH,重新打开 cmd 后重试。

2. 获取单个工具脚本

Percona 提供按工具名取脚本的入口 percona.com/get/<工具名>。以 pt-query-digest 为例:

也可以把它放到 MySQL 的 bin 目录下(方便随 MySQL 调用),或放到任意你习惯的目录。

同理,其他纯 Perl 工具可替换 <工具名>,例如 percona.com/get/pt-fingerprintpercona.com/get/pt-index-usage

3. 运行工具

进入脚本所在目录,用 perl 解释器执行。下面是分析慢查询日志的常用写法:

bat
REM 直接分析慢查询文件
perl pt-query-digest.pl "D:\software\MySQL\MySQL Server 5.7\Data\WIN-1OU3SGBLNIN-slow.log" > slow_report1.log

REM 只分析最近 12 小时
perl pt-query-digest.pl --since=12h "D:\software\MySQL\MySQL Server 5.7\Data\WIN-1OU3SGBLNIN-slow.log" > slow_report2.log

REM 分析某时间段
perl pt-query-digest.pl --since "2024-04-25 00:00:00" --until "2024-05-07 23:59:59" mysql.slow.log > slow_report3.log

REM 只分析 SELECT 语句
perl pt-query-digest.pl --filter "$event->{fingerprint} =~ m/^select/i" mysql.slow.log > slow_report4.log

哪些工具能在 Windows 直接跑

这种方式只适合纯 Perl、不依赖 Linux 专有设施的工具,如 pt-query-digestpt-fingerprintpt-index-usagept-table-usage 等分析类工具。像 pt-stalkpt-diskstatspt-ioprofilept-siftpt-pmp 这些依赖 /proc、系统命令或信号的工具在 Windows 上无法工作,请用下方的 WSL / Docker 方案。

方式二:WSL(Windows 子系统,适合完整工具集)

想要安装完整 Percona Toolkit、或用上述 Windows 不支持的工具时,推荐 WSL 跑一套 Linux:

1. 安装 WSL + Ubuntu

以管理员身份打开 PowerShell:

powershell
wsl --install

默认安装 Ubuntu;如需指定发行版:wsl --install -d Ubuntu。安装完成后重启,按提示设置 Linux 用户名与密码。

2. 在 WSL 中按 Linux 步骤安装

打开 Ubuntu 终端,更新并安装(完整命令见 在 Linux 上安装):

bash
sudo apt-get update
wget https://repo.percona.com/apt/percona-release_latest.generic_all.deb
sudo dpkg -i percona-release_latest.generic_all.deb
sudo apt-get update
sudo percona-release enable pt release
sudo apt-get install percona-toolkit

3. 验证

bash
pt-summary --version

连接宿主机 MySQL

WSL2 与 Windows 不在同一 localhost。在 WSL 里连接 Windows 上的 MySQL 时,-h 127.0.0.1localhost 通常不通,需把 -h 设为 Windows 宿主的实际 IP(WSL 中可用 cat /etc/resolv.conf 查看 nameserver,或直接使用宿主局域网 IP)。

方式三:Docker

不想装 WSL,也可以在容器里跑:

powershell
docker run --rm -it ubuntu:22.04 bash

进入容器后按 在 Linux 上安装 的步骤安装 percona-toolkit;若日志在 Windows 上,挂载目录后运行:

bash
docker run --rm -v D:/logs:/logs ubuntu-percona pt-query-digest /logs/mysql-slow.log

如何选择

  • 只想要 pt-query-digest 等分析工具、图省事 → 方式一(Strawberry Perl),最贴近 Windows 原生。
  • 要完整工具集、或用到依赖 Linux 的工具 → 方式二(WSL)方式三(Docker)

更多细节请阅读 官方文档

Percona Toolkit 中文文档 · 社区维护的第三方学习站