现在的环境:
✅ Rocky Linux 9
✅ Prometheus 3.12.0
✅ MySQL 8.0.46
✅ 不使用 root 用户
一、创建运行用户
bash
sudo useradd --no-create-home --shell /bin/false mysqld_exporter
二、安装 mysqld_exporter
bash
cd /tmp
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.19.0/mysqld_exporter-0.19.0.linux-amd64.tar.gz
tar -xvf mysqld_exporter-0.19.0.linux-amd64.tar.gz
sudo mv mysqld_exporter-0.19.0.linux-amd64/mysqld_exporter /usr/local/bin/
sudo chown mysqld_exporter:mysqld_exporter /usr/local/bin/mysqld_exporter
三、MySQL 授权
bash
登录 MySQL:
mysql -u root -p
执行:
CREATE USER IF NOT EXISTS 'exporter'@'localhost'
IDENTIFIED BY 'Exporter123!'
WITH MAX_USER_CONNECTIONS 3;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
FLUSH PRIVILEGES;

四、MySQL Exporter 配置
bash
sudo mkdir -p /etc/mysqld_exporter
sudo tee /etc/mysqld_exporter/.my.cnf > /dev/null << 'EOF'
[client]
user=exporter
password=Exporter123!
host=localhost
port=3306
EOF
sudo chown -R mysqld_exporter:mysqld_exporter /etc/mysqld_exporter
sudo chmod 600 /etc/mysqld_exporter/.my.cnf

五、systemd 服务(MySQL Exporter)
bash
sudo tee /etc/systemd/system/mysqld_exporter.service > /dev/null << 'EOF'
[Unit]
Description=MySQL Exporter
After=network.target mysqld.service
[Service]
User=mysqld_exporter
ExecStart=/usr/local/bin/mysqld_exporter \
--config.my-cnf=/etc/mysqld_exporter/.my.cnf \
--web.listen-address=:9104
Restart=always
[Install]
WantedBy=multi-user.target
EOF
初始化systemctl并启动mysqld_exporter
sudo systemctl daemon-reload
sudo systemctl enable --now mysqld_exporter

六、验证
1、MySQL Exporter 状态
bash
sudo systemctl status mysqld_exporter

2、端口
bash
ss -lntp | grep 9104
3、MySQL 是否成功采集
bash
curl http://localhost:9104/metrics | grep mysql_up
✅ 正确结果:
bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 175k 0 175k 0 0 9250k 0 --:--:-- --:--:-- --:--:-- 9250k
# HELP mysql_up Whether the MySQL server is up.
# TYPE mysql_up gauge
mysql_up 1

七、Prometheus 验证
浏览器访问:
→ Status → Targets
✅ 应看到:
| Job | State |
|---|---|
| prometheus | ✅ UP |
| mysql | ✅ UP |
![]() |
