Get the FREE Ultimate OpenClaw Setup Guide →
npx machina-cli add skill chaterm/terminal-skills/mysql --openclaw
Files (1)
SKILL.md
3.1 KB

MySQL 数据库管理

概述

MySQL/MariaDB 数据库的日常管理、备份恢复、性能调优等运维技能。

连接管理

# 本地连接
mysql -u root -p

# 远程连接
mysql -h hostname -P 3306 -u user -p database

# 执行 SQL 文件
mysql -u user -p database < script.sql

# 执行单条命令
mysql -u user -p -e "SHOW DATABASES;"

用户与权限

-- 查看用户
SELECT user, host FROM mysql.user;

-- 创建用户
CREATE USER 'username'@'%' IDENTIFIED BY 'password';

-- 授权
GRANT ALL PRIVILEGES ON database.* TO 'username'@'%';
GRANT SELECT, INSERT ON database.table TO 'username'@'%';

-- 刷新权限
FLUSH PRIVILEGES;

-- 查看权限
SHOW GRANTS FOR 'username'@'%';

数据库操作

-- 数据库管理
SHOW DATABASES;
CREATE DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
DROP DATABASE dbname;
USE dbname;

-- 表管理
SHOW TABLES;
DESCRIBE tablename;
SHOW CREATE TABLE tablename;

备份与恢复

mysqldump 备份

# 备份单个数据库
mysqldump -u root -p database > backup.sql

# 备份所有数据库
mysqldump -u root -p --all-databases > all_backup.sql

# 备份表结构
mysqldump -u root -p --no-data database > schema.sql

# 压缩备份
mysqldump -u root -p database | gzip > backup.sql.gz

恢复

# 恢复数据库
mysql -u root -p database < backup.sql

# 从压缩文件恢复
gunzip < backup.sql.gz | mysql -u root -p database

性能监控

-- 查看进程
SHOW PROCESSLIST;
SHOW FULL PROCESSLIST;

-- 查看状态
SHOW STATUS;
SHOW GLOBAL STATUS LIKE 'Threads%';
SHOW GLOBAL STATUS LIKE 'Connections';

-- 查看变量
SHOW VARIABLES LIKE 'max_connections';
SHOW VARIABLES LIKE '%buffer%';

-- 慢查询
SHOW VARIABLES LIKE 'slow_query%';
SHOW GLOBAL STATUS LIKE 'Slow_queries';

常见场景

场景 1:排查慢查询

-- 开启慢查询日志
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 1;

-- 查看慢查询日志位置
SHOW VARIABLES LIKE 'slow_query_log_file';

-- 分析执行计划
EXPLAIN SELECT * FROM table WHERE condition;
EXPLAIN ANALYZE SELECT * FROM table WHERE condition;

场景 2:锁问题排查

-- 查看锁等待
SHOW ENGINE INNODB STATUS\G

-- 查看当前锁
SELECT * FROM information_schema.INNODB_LOCKS;
SELECT * FROM information_schema.INNODB_LOCK_WAITS;

-- 查看事务
SELECT * FROM information_schema.INNODB_TRX;

场景 3:主从复制状态

-- 主库状态
SHOW MASTER STATUS;

-- 从库状态
SHOW SLAVE STATUS\G

-- 关键指标
-- Slave_IO_Running: Yes
-- Slave_SQL_Running: Yes
-- Seconds_Behind_Master: 0

故障排查

问题排查方法
连接数过多SHOW PROCESSLIST, 检查 max_connections
查询慢EXPLAIN, 检查索引
锁等待SHOW ENGINE INNODB STATUS
复制延迟SHOW SLAVE STATUS, 检查网络和负载
磁盘满检查 binlog, 清理旧日志

Source

git clone https://github.com/chaterm/terminal-skills/blob/main/database/mysql/SKILL.mdView on GitHub

Overview

本技能面向 MySQL 与 MariaDB 场景,帮助你通过标准 CLI 与 SQL 语句完成日常运维、备份恢复、性能调优与故障排查。你可以使用它来管理用户与权限、执行数据库与表的操作、进行备份/恢复、监控状态与慢查询,以及诊断锁、复制状态等问题。

How This Skill Works

该技能将对 MySQL/MariaDB 的客户端工具和 SQL 直接进行封装、示例化。你通过提供命令或 SQL 语句,即可完成连接、权限管理、数据库表操作、备份恢复,以及性能与状态监控。输出的查询结果和日志用于快速诊断与修复。

When to Use It

  • 需要创建或修改用户与权限时(GRANT/REVOKE、查看权限)
  • 需要备份或执行灾难恢复演练时
  • 需要排查慢查询、性能瓶颈或缓存命中率低时
  • 需要排查锁等待、死锁或事务问题时
  • 需要查看主从复制状态、故障排除或切换场景时

Quick Start

  1. 1) 连接到数据库:本地 mysql -u root -p 或 远程 mysql -h hostname -P 3306 -u user -p database
  2. 2) 创建用户并授权最小权限集:CREATE USER 'user'@'%' IDENTIFIED BY 'password'; GRANT SELECT,INSERT,UPDATE ON db.* TO 'user'@'%'; FLUSH PRIVILEGES;
  3. 3) 进行数据库备份:mysqldump -u root -p database > backup.sql(或压缩备份:mysqldump -u root -p database | gzip > backup.sql.gz)
  4. 4) 监控与诊断基线:SHOW PROCESSLIST; SHOW GLOBAL STATUS LIKE 'Threads%'; SHOW VARIABLES LIKE 'max_connections';

Best Practices

  • 采用最小权限原则,使用专用于运维的账户,而非 root;仅允许必需的主机来源
  • 定期备份并进行恢复演练,确保备份可用性与时效性
  • 对 InnoDB 使用 --single-transaction、--quick、--lock-tables=false 以获得一致性备份
  • 开启慢查询日志并设置合理的 long_query_time,结合 EXPLAIN/EXPLAIN ANALYZE 优化查询
  • 使用 utf8mb4 及 utf8mb4_unicode_ci,确保字符集一致性与对新字符的兼容性

Example Use Cases

  • 场景:排查慢查询
  • 你开启慢查询日志,设置 long_query_time = 1,并使用 EXPLAIN ANALYZE 识别慢 SQL;查看 slow_query_log_file 路径,逐条优化缺失索引或不合理的查询计划。
  • 场景:锁等待排查
  • 你执行 SHOW ENGINE INNODB STATUS\G、查询 information_schema.INNODB_LOCKS/INNODB_TRX,以定位锁来源与事务状态,优化应用逻辑或分离热点表。
  • 场景:主从复制状态检查
  • 你查看 SHOW MASTER STATUS; SHOW SLAVE STATUS\G,确认 Slave_IO_Running、Slave_SQL_Running 与 Seconds_Behind_Master,定位网络或延迟问题。
  • 场景:备份与恢复演练
  • 你用 mysqldump 备份数据库(--single-transaction --quick --routines --triggers),并在测试环境执行 mysql -u ... < backup.sql 确认可恢复性。
  • 场景:容量与基线监控
  • 你定期记录 SHOW GLOBAL STATUS 与 SHOW VARIABLES 的关键指标,建立基线;根据峰值和资源使用情况调整 max_connections、innodb_buffer_pool_size 等参数以防性能瓶颈。

Frequently Asked Questions

Add this skill to your agents

Related Skills

Sponsor this space

Reach thousands of developers