npx machina-cli add skill chaterm/terminal-skills/mysql --openclawMySQL 数据库管理
概述
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) 连接到数据库:本地 mysql -u root -p 或 远程 mysql -h hostname -P 3306 -u user -p database
- 2) 创建用户并授权最小权限集:CREATE USER 'user'@'%' IDENTIFIED BY 'password'; GRANT SELECT,INSERT,UPDATE ON db.* TO 'user'@'%'; FLUSH PRIVILEGES;
- 3) 进行数据库备份:mysqldump -u root -p database > backup.sql(或压缩备份:mysqldump -u root -p database | gzip > backup.sql.gz)
- 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
Related Skills
postgresql
chaterm/terminal-skills
PostgreSQL 数据库管理
sql-optimization
chaterm/terminal-skills
SQL 优化与调优
redis
chaterm/terminal-skills
Redis 数据库管理
mongodb
chaterm/terminal-skills
MongoDB 数据库管理
Database Design Expert
martinholovsky/claude-skills-generator
Expert in database schema design with focus on normalization, indexing strategies, FTS optimization, and performance-oriented architecture for desktop applications
convex-migrations
waynesutton/convexskills
Schema migration strategies for evolving applications including adding new fields, backfilling data, removing deprecated fields, index migrations, and zero-downtime migration patterns