opencode-skills-collection 4.0.67 → 4.0.69
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled-skills/.antigravity-install-manifest.json +281 -1
- package/bundled-skills/access-review/SKILL.md +394 -0
- package/bundled-skills/access-review/references/details.md +121 -0
- package/bundled-skills/agent-evals/SKILL.md +420 -0
- package/bundled-skills/agent-observability/SKILL.md +346 -0
- package/bundled-skills/agent-observability/references/details.md +786 -0
- package/bundled-skills/ai-agent-security/SKILL.md +393 -0
- package/bundled-skills/ai-agent-security/references/details.md +912 -0
- package/bundled-skills/ai-coding-agent-guardrails/SKILL.md +442 -0
- package/bundled-skills/ai-coding-agent-guardrails/references/details.md +753 -0
- package/bundled-skills/ai-inference-service-mesh/SKILL.md +449 -0
- package/bundled-skills/ai-pipeline-orchestration/SKILL.md +287 -0
- package/bundled-skills/ai-red-teaming/SKILL.md +409 -0
- package/bundled-skills/ai-security-hardening/SKILL.md +343 -0
- package/bundled-skills/ai-sre-incident-response/SKILL.md +336 -0
- package/bundled-skills/alerting-oncall/SKILL.md +458 -0
- package/bundled-skills/alerting-oncall/references/details.md +84 -0
- package/bundled-skills/anti-slop-design/SKILL.md +393 -0
- package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +1 -0
- package/bundled-skills/apk-redteam-pipeline/SKILL.md +446 -0
- package/bundled-skills/argocd-gitops/SKILL.md +469 -0
- package/bundled-skills/arm-templates/SKILL.md +438 -0
- package/bundled-skills/arm-templates/references/details.md +64 -0
- package/bundled-skills/artifact-yylo/SKILL.md +122 -0
- package/bundled-skills/asset-inventory/SKILL.md +412 -0
- package/bundled-skills/asset-inventory/references/details.md +127 -0
- package/bundled-skills/audit-logging/SKILL.md +476 -0
- package/bundled-skills/aws-cloudtrail/SKILL.md +486 -0
- package/bundled-skills/aws-cost-optimization/SKILL.md +331 -0
- package/bundled-skills/aws-ec2/SKILL.md +426 -0
- package/bundled-skills/aws-ecs-fargate/SKILL.md +388 -0
- package/bundled-skills/aws-iam/SKILL.md +463 -0
- package/bundled-skills/aws-lambda/SKILL.md +428 -0
- package/bundled-skills/aws-rds/SKILL.md +380 -0
- package/bundled-skills/aws-s3/SKILL.md +434 -0
- package/bundled-skills/aws-secrets-manager/SKILL.md +486 -0
- package/bundled-skills/aws-vpc/SKILL.md +436 -0
- package/bundled-skills/azure-ai-document-intelligence-ts/SKILL.md +1 -1
- package/bundled-skills/azure-aks/SKILL.md +423 -0
- package/bundled-skills/azure-devops/SKILL.md +457 -0
- package/bundled-skills/azure-functions-devsec/SKILL.md +436 -0
- package/bundled-skills/azure-keyvault/SKILL.md +455 -0
- package/bundled-skills/azure-keyvault/references/details.md +83 -0
- package/bundled-skills/azure-monitor-audit/SKILL.md +379 -0
- package/bundled-skills/azure-networking/SKILL.md +448 -0
- package/bundled-skills/azure-networking/references/details.md +135 -0
- package/bundled-skills/azure-sql/SKILL.md +413 -0
- package/bundled-skills/azure-sql/references/details.md +113 -0
- package/bundled-skills/azure-vms/SKILL.md +402 -0
- package/bundled-skills/azure-vms/references/details.md +134 -0
- package/bundled-skills/backup-recovery/SKILL.md +388 -0
- package/bundled-skills/bb-methodology/SKILL.md +451 -0
- package/bundled-skills/bb-methodology/references/details.md +120 -0
- package/bundled-skills/block-storage/SKILL.md +371 -0
- package/bundled-skills/blue-green-deploy/SKILL.md +453 -0
- package/bundled-skills/blue-green-deploy/references/details.md +90 -0
- package/bundled-skills/bug-bounty/SKILL.md +447 -0
- package/bundled-skills/bug-bounty/references/details.md +1316 -0
- package/bundled-skills/bugcrowd-reporting/SKILL.md +351 -0
- package/bundled-skills/business-continuity/SKILL.md +463 -0
- package/bundled-skills/career-ops/SKILL.md +186 -0
- package/bundled-skills/cdn-setup/SKILL.md +374 -0
- package/bundled-skills/change-management/SKILL.md +438 -0
- package/bundled-skills/change-management/references/details.md +105 -0
- package/bundled-skills/circleci/SKILL.md +475 -0
- package/bundled-skills/cis-benchmarks/SKILL.md +150 -0
- package/bundled-skills/cloudflare-pages/SKILL.md +318 -0
- package/bundled-skills/cloudflare-r2/SKILL.md +353 -0
- package/bundled-skills/cloudflare-workers/SKILL.md +415 -0
- package/bundled-skills/cloudflare-zero-trust/SKILL.md +361 -0
- package/bundled-skills/cloudformation/SKILL.md +461 -0
- package/bundled-skills/constraint-driven-development/SKILL.md +335 -0
- package/bundled-skills/constraint-driven-development/references/floor-guard.md +99 -0
- package/bundled-skills/container-hardening/SKILL.md +126 -0
- package/bundled-skills/container-registries/SKILL.md +435 -0
- package/bundled-skills/container-scanning/SKILL.md +416 -0
- package/bundled-skills/convex-backend/SKILL.md +338 -0
- package/bundled-skills/dast-scanning/SKILL.md +437 -0
- package/bundled-skills/database-backups/SKILL.md +425 -0
- package/bundled-skills/datadog/SKILL.md +487 -0
- package/bundled-skills/dependency-scanning/SKILL.md +457 -0
- package/bundled-skills/devcontainers-nix/SKILL.md +416 -0
- package/bundled-skills/disaster-recovery/SKILL.md +374 -0
- package/bundled-skills/disaster-recovery/references/details.md +219 -0
- package/bundled-skills/dns-management/SKILL.md +375 -0
- package/bundled-skills/docker-compose/SKILL.md +482 -0
- package/bundled-skills/docker-management/SKILL.md +426 -0
- package/bundled-skills/ebpf-observability/SKILL.md +436 -0
- package/bundled-skills/ebpf-observability/references/details.md +542 -0
- package/bundled-skills/elk-stack/SKILL.md +487 -0
- package/bundled-skills/enterprise-vpn-attack/SKILL.md +395 -0
- package/bundled-skills/evidence-hygiene/SKILL.md +404 -0
- package/bundled-skills/feature-flags/SKILL.md +426 -0
- package/bundled-skills/feature-flags/references/details.md +86 -0
- package/bundled-skills/fedramp-compliance/SKILL.md +453 -0
- package/bundled-skills/firebase-app-platform/SKILL.md +381 -0
- package/bundled-skills/firewall-config/SKILL.md +479 -0
- package/bundled-skills/gcp-audit-logs/SKILL.md +452 -0
- package/bundled-skills/gcp-audit-logs/references/details.md +56 -0
- package/bundled-skills/gcp-cloud-functions/SKILL.md +284 -0
- package/bundled-skills/gcp-cloud-sql/SKILL.md +277 -0
- package/bundled-skills/gcp-compute/SKILL.md +319 -0
- package/bundled-skills/gcp-gke/SKILL.md +307 -0
- package/bundled-skills/gcp-networking/SKILL.md +293 -0
- package/bundled-skills/gcp-secret-manager/SKILL.md +421 -0
- package/bundled-skills/gcp-secret-manager/references/details.md +131 -0
- package/bundled-skills/gdpr-compliance/SKILL.md +451 -0
- package/bundled-skills/gdpr-compliance/references/details.md +145 -0
- package/bundled-skills/geo-audit/SKILL.md +368 -0
- package/bundled-skills/geo-brand-mentions/SKILL.md +68 -0
- package/bundled-skills/geo-brand-mentions/references/details.md +471 -0
- package/bundled-skills/geo-citability/SKILL.md +350 -0
- package/bundled-skills/geo-compare/SKILL.md +340 -0
- package/bundled-skills/geo-content/SKILL.md +383 -0
- package/bundled-skills/geo-crawlers/SKILL.md +408 -0
- package/bundled-skills/geo-llmstxt/SKILL.md +464 -0
- package/bundled-skills/geo-platform-optimizer/SKILL.md +314 -0
- package/bundled-skills/geo-proposal/SKILL.md +378 -0
- package/bundled-skills/geo-prospect/SKILL.md +225 -0
- package/bundled-skills/geo-report/SKILL.md +436 -0
- package/bundled-skills/geo-report-pdf/SKILL.md +157 -0
- package/bundled-skills/geo-schema/SKILL.md +408 -0
- package/bundled-skills/geo-technical/SKILL.md +78 -0
- package/bundled-skills/geo-technical/references/details.md +543 -0
- package/bundled-skills/git-workflow/SKILL.md +460 -0
- package/bundled-skills/github-actions/SKILL.md +368 -0
- package/bundled-skills/gitlab-ci/SKILL.md +340 -0
- package/bundled-skills/google-no-code/SKILL.md +136 -0
- package/bundled-skills/gpu-kubernetes-operations/SKILL.md +468 -0
- package/bundled-skills/gpu-server-management/SKILL.md +236 -0
- package/bundled-skills/hashicorp-vault/SKILL.md +408 -0
- package/bundled-skills/helm-charts/SKILL.md +469 -0
- package/bundled-skills/hipaa-compliance/SKILL.md +451 -0
- package/bundled-skills/hunt-aspnet/SKILL.md +321 -0
- package/bundled-skills/hunt-ato/SKILL.md +184 -0
- package/bundled-skills/hunt-auth-bypass/SKILL.md +426 -0
- package/bundled-skills/hunt-auth-bypass/references/details.md +80 -0
- package/bundled-skills/hunt-brute-force/SKILL.md +341 -0
- package/bundled-skills/hunt-business-logic/SKILL.md +281 -0
- package/bundled-skills/hunt-cache-poison/SKILL.md +382 -0
- package/bundled-skills/hunt-captcha-bypass/SKILL.md +136 -0
- package/bundled-skills/hunt-cicd/SKILL.md +311 -0
- package/bundled-skills/hunt-clickjacking/SKILL.md +110 -0
- package/bundled-skills/hunt-cors/SKILL.md +335 -0
- package/bundled-skills/hunt-dom/SKILL.md +323 -0
- package/bundled-skills/hunt-exceptional-conditions/SKILL.md +111 -0
- package/bundled-skills/hunt-file-upload/SKILL.md +202 -0
- package/bundled-skills/hunt-fintech-graphql/SKILL.md +289 -0
- package/bundled-skills/hunt-forgot-password/SKILL.md +114 -0
- package/bundled-skills/hunt-grpc/SKILL.md +317 -0
- package/bundled-skills/hunt-host-header/SKILL.md +309 -0
- package/bundled-skills/hunt-html-injection/SKILL.md +106 -0
- package/bundled-skills/hunt-http-smuggling/SKILL.md +129 -0
- package/bundled-skills/hunt-http-smuggling/references/phase2h-smuggling-cachepoison.md +177 -0
- package/bundled-skills/hunt-idor/SKILL.md +434 -0
- package/bundled-skills/hunt-jwt-crypto/SKILL.md +221 -0
- package/bundled-skills/hunt-k8s/SKILL.md +337 -0
- package/bundled-skills/hunt-laravel/SKILL.md +255 -0
- package/bundled-skills/hunt-ldap/SKILL.md +351 -0
- package/bundled-skills/hunt-lfi/SKILL.md +311 -0
- package/bundled-skills/hunt-llm-ai/SKILL.md +289 -0
- package/bundled-skills/hunt-mfa-bypass/SKILL.md +177 -0
- package/bundled-skills/hunt-misc/SKILL.md +378 -0
- package/bundled-skills/hunt-nextjs/SKILL.md +299 -0
- package/bundled-skills/hunt-nodejs/SKILL.md +263 -0
- package/bundled-skills/hunt-nosqli/SKILL.md +210 -0
- package/bundled-skills/hunt-ntlm-info/SKILL.md +314 -0
- package/bundled-skills/hunt-oauth/SKILL.md +459 -0
- package/bundled-skills/hunt-open-redirect/SKILL.md +223 -0
- package/bundled-skills/hunt-race-condition/SKILL.md +381 -0
- package/bundled-skills/hunt-race-condition/references/details.md +159 -0
- package/bundled-skills/hunt-rag-vector/SKILL.md +212 -0
- package/bundled-skills/hunt-rce/SKILL.md +444 -0
- package/bundled-skills/hunt-rce/references/details.md +110 -0
- package/bundled-skills/hunt-saml/SKILL.md +156 -0
- package/bundled-skills/hunt-session/SKILL.md +342 -0
- package/bundled-skills/hunt-shadow-api/SKILL.md +198 -0
- package/bundled-skills/hunt-source-leak/SKILL.md +345 -0
- package/bundled-skills/hunt-spa-api/SKILL.md +163 -0
- package/bundled-skills/hunt-springboot/SKILL.md +285 -0
- package/bundled-skills/hunt-sqli/SKILL.md +466 -0
- package/bundled-skills/hunt-ssrf/SKILL.md +396 -0
- package/bundled-skills/hunt-ssrf/references/details.md +179 -0
- package/bundled-skills/hunt-ssti/SKILL.md +163 -0
- package/bundled-skills/hunt-subdomain/SKILL.md +379 -0
- package/bundled-skills/hunt-tls-network/SKILL.md +399 -0
- package/bundled-skills/hunt-xxe/SKILL.md +466 -0
- package/bundled-skills/i-have-adhd/SKILL.md +170 -0
- package/bundled-skills/idea-evaluator/SKILL.md +75 -0
- package/bundled-skills/idea-evaluator/idea-evaluator-con/SKILL.md +64 -0
- package/bundled-skills/idea-evaluator/idea-evaluator-pro/SKILL.md +64 -0
- package/bundled-skills/identity-access-management/SKILL.md +382 -0
- package/bundled-skills/identity-access-management/references/details.md +524 -0
- package/bundled-skills/incident-management/SKILL.md +484 -0
- package/bundled-skills/incident-response/SKILL.md +448 -0
- package/bundled-skills/incident-response/references/details.md +113 -0
- package/bundled-skills/interview-me/SKILL.md +248 -0
- package/bundled-skills/iso27001-compliance/SKILL.md +460 -0
- package/bundled-skills/jenkins/SKILL.md +462 -0
- package/bundled-skills/jev-use/SKILL.md +158 -0
- package/bundled-skills/kubernetes-hardening/SKILL.md +154 -0
- package/bundled-skills/kubernetes-ops/SKILL.md +449 -0
- package/bundled-skills/kubernetes-ops/references/details.md +108 -0
- package/bundled-skills/kustomize/SKILL.md +478 -0
- package/bundled-skills/ledger-tasks-yylo/SKILL.md +219 -0
- package/bundled-skills/linux-administration/SKILL.md +367 -0
- package/bundled-skills/linux-hardening/SKILL.md +154 -0
- package/bundled-skills/llm-app-security/SKILL.md +389 -0
- package/bundled-skills/llm-app-security/references/details.md +674 -0
- package/bundled-skills/llm-caching/SKILL.md +334 -0
- package/bundled-skills/llm-cost-optimization/SKILL.md +311 -0
- package/bundled-skills/llm-fine-tuning/SKILL.md +329 -0
- package/bundled-skills/llm-gateway/SKILL.md +282 -0
- package/bundled-skills/llm-inference-scaling/SKILL.md +286 -0
- package/bundled-skills/llmops-platform-engineering/SKILL.md +472 -0
- package/bundled-skills/load-balancing/SKILL.md +403 -0
- package/bundled-skills/loki-logging/SKILL.md +479 -0
- package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package-lock.json +4 -4
- package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package.json +1 -1
- package/bundled-skills/m365-entra-attack/SKILL.md +423 -0
- package/bundled-skills/mac-mini-llm-lab/SKILL.md +350 -0
- package/bundled-skills/mcp-server-security/SKILL.md +356 -0
- package/bundled-skills/mcp-server-security/references/details.md +745 -0
- package/bundled-skills/mdm-device-management/SKILL.md +404 -0
- package/bundled-skills/mdm-device-management/references/details.md +410 -0
- package/bundled-skills/meme-coin-audit/SKILL.md +402 -0
- package/bundled-skills/mid-engagement-ir-detection/SKILL.md +377 -0
- package/bundled-skills/model-registry-governance/SKILL.md +452 -0
- package/bundled-skills/model-serving-kubernetes/SKILL.md +339 -0
- package/bundled-skills/model-supply-chain-security/SKILL.md +427 -0
- package/bundled-skills/mongodb/SKILL.md +436 -0
- package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +435 -0
- package/bundled-skills/multi-tenant-llm-hosting/references/details.md +211 -0
- package/bundled-skills/mysql/SKILL.md +390 -0
- package/bundled-skills/new-relic/SKILL.md +472 -0
- package/bundled-skills/nfs-storage/SKILL.md +356 -0
- package/bundled-skills/object-storage/SKILL.md +378 -0
- package/bundled-skills/offensive-osint/SKILL.md +443 -0
- package/bundled-skills/okta-attack/SKILL.md +436 -0
- package/bundled-skills/ollama-stack/SKILL.md +379 -0
- package/bundled-skills/openclaw-deployment-hardening/SKILL.md +135 -0
- package/bundled-skills/openclaw-local-mac-mini/SKILL.md +426 -0
- package/bundled-skills/openclaw-local-mac-mini/references/details.md +221 -0
- package/bundled-skills/openclaw-security-hardening/SKILL.md +135 -0
- package/bundled-skills/openshift/SKILL.md +485 -0
- package/bundled-skills/opentelemetry/SKILL.md +438 -0
- package/bundled-skills/opentelemetry/references/details.md +78 -0
- package/bundled-skills/opentofu-migration/SKILL.md +349 -0
- package/bundled-skills/osint-methodology/SKILL.md +460 -0
- package/bundled-skills/osint-methodology/references/details.md +1350 -0
- package/bundled-skills/pci-dss-compliance/SKILL.md +446 -0
- package/bundled-skills/penetration-testing/SKILL.md +152 -0
- package/bundled-skills/performance-tuning/SKILL.md +381 -0
- package/bundled-skills/plan-ledger-tasks-yylo/SKILL.md +52 -0
- package/bundled-skills/planetscale/SKILL.md +297 -0
- package/bundled-skills/platform-engineering/SKILL.md +348 -0
- package/bundled-skills/platform-engineering/references/details.md +944 -0
- package/bundled-skills/podman/SKILL.md +405 -0
- package/bundled-skills/policy-as-code/SKILL.md +434 -0
- package/bundled-skills/policy-as-code/references/details.md +204 -0
- package/bundled-skills/postgresql-devsec/SKILL.md +378 -0
- package/bundled-skills/prometheus-grafana/SKILL.md +469 -0
- package/bundled-skills/prompt-injection-defense/SKILL.md +483 -0
- package/bundled-skills/rag-infrastructure/SKILL.md +269 -0
- package/bundled-skills/rag-observability-evals/SKILL.md +444 -0
- package/bundled-skills/rag-observability-evals/references/details.md +92 -0
- package/bundled-skills/ralph-loop-yylo/SKILL.md +55 -0
- package/bundled-skills/ralph-loop-yylo/references/first_check.md +18 -0
- package/bundled-skills/ralph-loop-yylo/references/implement.md +60 -0
- package/bundled-skills/recon-scope-triage/SKILL.md +128 -0
- package/bundled-skills/redis/SKILL.md +421 -0
- package/bundled-skills/redteam-report-template/SKILL.md +370 -0
- package/bundled-skills/report-writing/SKILL.md +426 -0
- package/bundled-skills/report-writing/references/details.md +187 -0
- package/bundled-skills/resumable-implementation-contracts/SKILL.md +254 -0
- package/bundled-skills/reverse-proxy/SKILL.md +420 -0
- package/bundled-skills/runbook-creation/SKILL.md +438 -0
- package/bundled-skills/runbook-creation/references/details.md +71 -0
- package/bundled-skills/saas-security-posture/SKILL.md +415 -0
- package/bundled-skills/sast-scanning/SKILL.md +444 -0
- package/bundled-skills/sbom-supply-chain/SKILL.md +433 -0
- package/bundled-skills/security-arsenal/SKILL.md +446 -0
- package/bundled-skills/security-arsenal/references/details.md +540 -0
- package/bundled-skills/security-automation/SKILL.md +146 -0
- package/bundled-skills/semantic-versioning/SKILL.md +434 -0
- package/bundled-skills/semantic-versioning/references/details.md +83 -0
- package/bundled-skills/service-mesh/SKILL.md +422 -0
- package/bundled-skills/soc2-compliance/SKILL.md +409 -0
- package/bundled-skills/sops-encryption/SKILL.md +124 -0
- package/bundled-skills/sre-dashboards/SKILL.md +143 -0
- package/bundled-skills/ssh-configuration/SKILL.md +324 -0
- package/bundled-skills/ssl-tls-management/SKILL.md +428 -0
- package/bundled-skills/ssl-tls-management/references/details.md +99 -0
- package/bundled-skills/startup-it-troubleshooting/SKILL.md +415 -0
- package/bundled-skills/supply-chain-attack-recon/SKILL.md +453 -0
- package/bundled-skills/supply-chain-attack-recon/references/details.md +258 -0
- package/bundled-skills/systemd-services/SKILL.md +379 -0
- package/bundled-skills/terraform-aws/SKILL.md +125 -0
- package/bundled-skills/terraform-azure/SKILL.md +415 -0
- package/bundled-skills/terraform-azure/references/details.md +231 -0
- package/bundled-skills/terraform-gcp/SKILL.md +369 -0
- package/bundled-skills/threat-modeling/SKILL.md +487 -0
- package/bundled-skills/understand-project-yylo/SKILL.md +62 -0
- package/bundled-skills/user-management/SKILL.md +383 -0
- package/bundled-skills/using-agent-skills/SKILL.md +220 -0
- package/bundled-skills/vector-database-ops/SKILL.md +300 -0
- package/bundled-skills/vendor-management/SKILL.md +439 -0
- package/bundled-skills/vendor-management/references/details.md +109 -0
- package/bundled-skills/vercel-deployments/SKILL.md +296 -0
- package/bundled-skills/vllm-server/SKILL.md +236 -0
- package/bundled-skills/vmware-vcenter-attack/SKILL.md +412 -0
- package/bundled-skills/vpn-setup/SKILL.md +452 -0
- package/bundled-skills/vulnerability-scanning/SKILL.md +448 -0
- package/bundled-skills/waf-setup/SKILL.md +354 -0
- package/bundled-skills/waf-setup/references/details.md +211 -0
- package/bundled-skills/weather-model-data-fetching/SKILL.md +277 -0
- package/bundled-skills/weather-observation-fetching/SKILL.md +246 -0
- package/bundled-skills/web2-recon/SKILL.md +440 -0
- package/bundled-skills/web2-recon/references/details.md +319 -0
- package/bundled-skills/web3-audit/SKILL.md +445 -0
- package/bundled-skills/web3-audit/references/details.md +224 -0
- package/bundled-skills/wiki-yylo/SKILL.md +114 -0
- package/bundled-skills/windows-hardening/SKILL.md +454 -0
- package/bundled-skills/windows-hardening/references/details.md +204 -0
- package/bundled-skills/windows-server/SKILL.md +318 -0
- package/bundled-skills/workflow-yylo/SKILL.md +107 -0
- package/bundled-skills/zero-trust/SKILL.md +461 -0
- package/package.json +1 -1
- package/skills_index.json +6924 -0
|
@@ -0,0 +1,390 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: mysql
|
|
3
|
+
description: Administer MySQL/MariaDB databases. Configure replication and optimize
|
|
4
|
+
performance. Use when managing MySQL deployments.
|
|
5
|
+
category: devops
|
|
6
|
+
risk: critical
|
|
7
|
+
source: https://github.com/BagelHole/DevOps-Security-Agent-Skills
|
|
8
|
+
source_repo: BagelHole/DevOps-Security-Agent-Skills
|
|
9
|
+
source_type: community
|
|
10
|
+
date_added: '2026-09-20'
|
|
11
|
+
license: MIT
|
|
12
|
+
license_source: https://github.com/BagelHole/DevOps-Security-Agent-Skills/blob/main/LICENSE
|
|
13
|
+
compatibility: Requires the relevant OS/platform tooling and privileged access where
|
|
14
|
+
noted. Docs-only; helper scripts and templates not bundled.
|
|
15
|
+
metadata:
|
|
16
|
+
author: devops-skills
|
|
17
|
+
version: '1.0'
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
# MySQL / MariaDB
|
|
21
|
+
|
|
22
|
+
Administer, optimize, and secure MySQL and MariaDB databases in development and production environments.
|
|
23
|
+
|
|
24
|
+
## When to Use
|
|
25
|
+
|
|
26
|
+
- You need a mature, widely supported relational database.
|
|
27
|
+
- Your stack depends on MySQL-specific features or compatibility (WordPress, Magento, many PHP frameworks).
|
|
28
|
+
- You are setting up source-replica replication for read scaling.
|
|
29
|
+
- You want to tune InnoDB for high-throughput transactional workloads.
|
|
30
|
+
|
|
31
|
+
## Prerequisites
|
|
32
|
+
|
|
33
|
+
- Linux server (Debian/Ubuntu or RHEL-based) or Docker.
|
|
34
|
+
- Root or sudo access for package installation.
|
|
35
|
+
- Familiarity with SQL fundamentals.
|
|
36
|
+
|
|
37
|
+
## Installation and Setup
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# Debian / Ubuntu — MySQL 8
|
|
41
|
+
sudo apt update
|
|
42
|
+
sudo apt install -y mysql-server
|
|
43
|
+
|
|
44
|
+
# RHEL / Amazon Linux
|
|
45
|
+
sudo dnf install -y mysql-server
|
|
46
|
+
sudo systemctl enable --now mysqld
|
|
47
|
+
|
|
48
|
+
# Run the secure installation wizard
|
|
49
|
+
sudo mysql_secure_installation
|
|
50
|
+
# Prompts: set root password, remove anonymous users, disable remote root, remove test db
|
|
51
|
+
|
|
52
|
+
# Verify
|
|
53
|
+
mysql --version
|
|
54
|
+
sudo systemctl status mysql
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
## Initial User and Database Setup
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
sudo mysql -u root -p
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
```sql
|
|
64
|
+
-- Create a database
|
|
65
|
+
CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
66
|
+
|
|
67
|
+
-- Create an application user with strong auth
|
|
68
|
+
CREATE USER 'myapp'@'%' IDENTIFIED BY 'strong_password_here';
|
|
69
|
+
GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO 'myapp'@'%';
|
|
70
|
+
FLUSH PRIVILEGES;
|
|
71
|
+
|
|
72
|
+
-- Verify
|
|
73
|
+
SHOW GRANTS FOR 'myapp'@'%';
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## mysql CLI Reference
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
# Connect
|
|
80
|
+
mysql -u myapp -p -h 127.0.0.1 mydb
|
|
81
|
+
|
|
82
|
+
# Execute a single statement
|
|
83
|
+
mysql -u myapp -p -e "SELECT COUNT(*) FROM orders;" mydb
|
|
84
|
+
|
|
85
|
+
# Import a SQL file
|
|
86
|
+
mysql -u myapp -p mydb < schema.sql
|
|
87
|
+
|
|
88
|
+
# Export query results to CSV
|
|
89
|
+
mysql -u myapp -p -e "SELECT * FROM users" mydb \
|
|
90
|
+
| tr '\t' ',' > users.csv
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
-- Inside the mysql shell
|
|
95
|
+
SHOW DATABASES;
|
|
96
|
+
USE mydb;
|
|
97
|
+
SHOW TABLES;
|
|
98
|
+
DESCRIBE users;
|
|
99
|
+
SHOW CREATE TABLE users\G
|
|
100
|
+
SHOW PROCESSLIST;
|
|
101
|
+
SHOW ENGINE INNODB STATUS\G
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
## Configuration Tuning
|
|
105
|
+
|
|
106
|
+
Edit `/etc/mysql/mysql.conf.d/mysqld.cnf` (or `/etc/my.cnf` on RHEL).
|
|
107
|
+
|
|
108
|
+
```ini
|
|
109
|
+
[mysqld]
|
|
110
|
+
# -- Networking --
|
|
111
|
+
bind-address = 0.0.0.0
|
|
112
|
+
max_connections = 300
|
|
113
|
+
wait_timeout = 600
|
|
114
|
+
interactive_timeout = 600
|
|
115
|
+
|
|
116
|
+
# -- InnoDB (most impactful settings) --
|
|
117
|
+
innodb_buffer_pool_size = 4G # ~70% of RAM on a dedicated server
|
|
118
|
+
innodb_buffer_pool_instances = 4 # 1 per GB of pool (up to 64)
|
|
119
|
+
innodb_log_file_size = 1G
|
|
120
|
+
innodb_flush_log_at_trx_commit = 1 # 1 = ACID; 2 = faster, slight risk
|
|
121
|
+
innodb_flush_method = O_DIRECT # avoids double buffering on Linux
|
|
122
|
+
innodb_io_capacity = 2000 # raise for SSD
|
|
123
|
+
innodb_io_capacity_max = 4000
|
|
124
|
+
|
|
125
|
+
# -- Query cache (disabled in MySQL 8, use ProxySQL or app cache) --
|
|
126
|
+
# query_cache_type = 0
|
|
127
|
+
|
|
128
|
+
# -- Logging --
|
|
129
|
+
slow_query_log = 1
|
|
130
|
+
slow_query_log_file = /var/log/mysql/slow.log
|
|
131
|
+
long_query_time = 1
|
|
132
|
+
log_error = /var/log/mysql/error.log
|
|
133
|
+
|
|
134
|
+
# -- Binary log (required for replication) --
|
|
135
|
+
server-id = 1
|
|
136
|
+
log_bin = /var/log/mysql/mysql-bin
|
|
137
|
+
binlog_expire_logs_seconds = 604800 # 7 days
|
|
138
|
+
sync_binlog = 1
|
|
139
|
+
|
|
140
|
+
# -- Character set --
|
|
141
|
+
character-set-server = utf8mb4
|
|
142
|
+
collation-server = utf8mb4_unicode_ci
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
```bash
|
|
146
|
+
# Apply changes
|
|
147
|
+
sudo systemctl restart mysql
|
|
148
|
+
|
|
149
|
+
# Verify a setting at runtime
|
|
150
|
+
mysql -u root -p -e "SHOW VARIABLES LIKE 'innodb_buffer_pool_size';"
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
## Backup and Restore
|
|
154
|
+
|
|
155
|
+
### Logical Backups with mysqldump
|
|
156
|
+
|
|
157
|
+
```bash
|
|
158
|
+
# Single database
|
|
159
|
+
mysqldump -u root -p --single-transaction --routines --triggers \
|
|
160
|
+
mydb > /backups/mydb_$(date +%F).sql
|
|
161
|
+
|
|
162
|
+
# All databases
|
|
163
|
+
mysqldump -u root -p --all-databases --single-transaction \
|
|
164
|
+
> /backups/all_$(date +%F).sql
|
|
165
|
+
|
|
166
|
+
# Compressed backup
|
|
167
|
+
mysqldump -u root -p --single-transaction mydb \
|
|
168
|
+
| gzip > /backups/mydb_$(date +%F).sql.gz
|
|
169
|
+
|
|
170
|
+
# Restore
|
|
171
|
+
mysql -u root -p mydb < /backups/mydb_2025-01-15.sql
|
|
172
|
+
|
|
173
|
+
# Restore compressed
|
|
174
|
+
gunzip < /backups/mydb_2025-01-15.sql.gz | mysql -u root -p mydb
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
### Physical Backups with Percona XtraBackup
|
|
178
|
+
|
|
179
|
+
```bash
|
|
180
|
+
# Install
|
|
181
|
+
sudo apt install -y percona-xtrabackup-80
|
|
182
|
+
|
|
183
|
+
# Full backup
|
|
184
|
+
xtrabackup --backup --user=root --password=secret \
|
|
185
|
+
--target-dir=/backups/full_$(date +%F)
|
|
186
|
+
|
|
187
|
+
# Prepare the backup (apply redo logs)
|
|
188
|
+
xtrabackup --prepare --target-dir=/backups/full_2025-01-15
|
|
189
|
+
|
|
190
|
+
# Restore (stop MySQL first)
|
|
191
|
+
sudo systemctl stop mysql
|
|
192
|
+
ls /var/lib/mysql/* # verify this is the correct data dir first
|
|
193
|
+
sudo find /var/lib/mysql -mindepth 1 -delete # empty the data dir; snapshots must exist (see Limitations)
|
|
194
|
+
xtrabackup --move-back --target-dir=/backups/full_2025-01-15
|
|
195
|
+
sudo chown -R mysql:mysql /var/lib/mysql
|
|
196
|
+
sudo systemctl start mysql
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### Incremental Backup with XtraBackup
|
|
200
|
+
|
|
201
|
+
```bash
|
|
202
|
+
# Incremental based on the full backup
|
|
203
|
+
xtrabackup --backup --user=root --password=secret \
|
|
204
|
+
--target-dir=/backups/inc_$(date +%F) \
|
|
205
|
+
--incremental-basedir=/backups/full_2025-01-15
|
|
206
|
+
|
|
207
|
+
# Prepare: apply full, then incremental
|
|
208
|
+
xtrabackup --prepare --apply-log-only --target-dir=/backups/full_2025-01-15
|
|
209
|
+
xtrabackup --prepare --target-dir=/backups/full_2025-01-15 \
|
|
210
|
+
--incremental-dir=/backups/inc_2025-01-16
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
## Source-Replica Replication
|
|
214
|
+
|
|
215
|
+
### Source (Primary)
|
|
216
|
+
|
|
217
|
+
```ini
|
|
218
|
+
# /etc/mysql/mysql.conf.d/mysqld.cnf
|
|
219
|
+
[mysqld]
|
|
220
|
+
server-id = 1
|
|
221
|
+
log_bin = /var/log/mysql/mysql-bin
|
|
222
|
+
binlog_format = ROW
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
```sql
|
|
226
|
+
-- Create replication user
|
|
227
|
+
CREATE USER 'replicator'@'10.0.0.%' IDENTIFIED BY 'repl_secret';
|
|
228
|
+
GRANT REPLICATION SLAVE ON *.* TO 'replicator'@'10.0.0.%';
|
|
229
|
+
FLUSH PRIVILEGES;
|
|
230
|
+
|
|
231
|
+
-- Get current binary log position
|
|
232
|
+
SHOW MASTER STATUS\G
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### Replica
|
|
236
|
+
|
|
237
|
+
```ini
|
|
238
|
+
# /etc/mysql/mysql.conf.d/mysqld.cnf
|
|
239
|
+
[mysqld]
|
|
240
|
+
server-id = 2
|
|
241
|
+
relay_log = /var/log/mysql/relay-bin
|
|
242
|
+
read_only = ON
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
```sql
|
|
246
|
+
-- Point replica to source (use SHOW MASTER STATUS values)
|
|
247
|
+
CHANGE REPLICATION SOURCE TO
|
|
248
|
+
SOURCE_HOST = '10.0.0.1',
|
|
249
|
+
SOURCE_USER = 'replicator',
|
|
250
|
+
SOURCE_PASSWORD = '...' # replication secret from your vault,
|
|
251
|
+
SOURCE_LOG_FILE = 'mysql-bin.000003',
|
|
252
|
+
SOURCE_LOG_POS = 154;
|
|
253
|
+
|
|
254
|
+
START REPLICA;
|
|
255
|
+
|
|
256
|
+
-- Verify
|
|
257
|
+
SHOW REPLICA STATUS\G
|
|
258
|
+
-- Check: Replica_IO_Running = Yes, Replica_SQL_Running = Yes, Seconds_Behind_Source = 0
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
## Monitoring Queries
|
|
262
|
+
|
|
263
|
+
```sql
|
|
264
|
+
-- Connection statistics
|
|
265
|
+
SHOW STATUS LIKE 'Threads_connected';
|
|
266
|
+
SHOW STATUS LIKE 'Max_used_connections';
|
|
267
|
+
|
|
268
|
+
-- InnoDB buffer pool hit ratio (should be > 99%)
|
|
269
|
+
SELECT
|
|
270
|
+
ROUND(100 - (
|
|
271
|
+
(SELECT VARIABLE_VALUE FROM performance_schema.global_status WHERE VARIABLE_NAME = 'Innodb_buffer_pool_reads') /
|
|
272
|
+
(SELECT VARIABLE_VALUE FROM performance_schema.global_status WHERE VARIABLE_NAME = 'Innodb_buffer_pool_read_requests')
|
|
273
|
+
) * 100, 2) AS buffer_pool_hit_pct;
|
|
274
|
+
|
|
275
|
+
-- Top 10 slow queries (requires performance_schema)
|
|
276
|
+
SELECT DIGEST_TEXT, COUNT_STAR, AVG_TIMER_WAIT / 1e12 AS avg_sec
|
|
277
|
+
FROM performance_schema.events_statements_summary_by_digest
|
|
278
|
+
ORDER BY AVG_TIMER_WAIT DESC
|
|
279
|
+
LIMIT 10;
|
|
280
|
+
|
|
281
|
+
-- Table sizes
|
|
282
|
+
SELECT table_name,
|
|
283
|
+
ROUND(data_length / 1024 / 1024, 2) AS data_mb,
|
|
284
|
+
ROUND(index_length / 1024 / 1024, 2) AS index_mb,
|
|
285
|
+
table_rows
|
|
286
|
+
FROM information_schema.tables
|
|
287
|
+
WHERE table_schema = 'mydb'
|
|
288
|
+
ORDER BY data_length DESC;
|
|
289
|
+
|
|
290
|
+
-- Check replication lag
|
|
291
|
+
SHOW REPLICA STATUS\G
|
|
292
|
+
-- Look at Seconds_Behind_Source
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
## Docker Compose Setup
|
|
296
|
+
|
|
297
|
+
```yaml
|
|
298
|
+
# docker-compose.yml
|
|
299
|
+
version: "3.9"
|
|
300
|
+
|
|
301
|
+
services:
|
|
302
|
+
mysql:
|
|
303
|
+
image: mysql:8.0
|
|
304
|
+
restart: unless-stopped
|
|
305
|
+
ports:
|
|
306
|
+
- "3306:3306"
|
|
307
|
+
environment:
|
|
308
|
+
MYSQL_ROOT_PASSWORD: rootpass
|
|
309
|
+
MYSQL_DATABASE: mydb
|
|
310
|
+
MYSQL_USER: myapp
|
|
311
|
+
MYSQL_PASSWORD: secret
|
|
312
|
+
volumes:
|
|
313
|
+
- mysql_data:/var/lib/mysql
|
|
314
|
+
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
|
|
315
|
+
command: >
|
|
316
|
+
--innodb-buffer-pool-size=512M
|
|
317
|
+
--max-connections=200
|
|
318
|
+
--slow-query-log=ON
|
|
319
|
+
--long-query-time=1
|
|
320
|
+
--character-set-server=utf8mb4
|
|
321
|
+
--collation-server=utf8mb4_unicode_ci
|
|
322
|
+
healthcheck:
|
|
323
|
+
test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u", "root", "-prootpass"]
|
|
324
|
+
interval: 10s
|
|
325
|
+
timeout: 5s
|
|
326
|
+
retries: 5
|
|
327
|
+
|
|
328
|
+
phpmyadmin:
|
|
329
|
+
image: phpmyadmin:latest
|
|
330
|
+
restart: unless-stopped
|
|
331
|
+
ports:
|
|
332
|
+
- "8080:80"
|
|
333
|
+
environment:
|
|
334
|
+
PMA_HOST: mysql
|
|
335
|
+
PMA_USER: root
|
|
336
|
+
PMA_PASSWORD: rootpass
|
|
337
|
+
depends_on:
|
|
338
|
+
mysql:
|
|
339
|
+
condition: service_healthy
|
|
340
|
+
|
|
341
|
+
volumes:
|
|
342
|
+
mysql_data:
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
```bash
|
|
346
|
+
docker compose up -d
|
|
347
|
+
mysql -h 127.0.0.1 -u myapp -psecret mydb
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
## Maintenance Tasks
|
|
351
|
+
|
|
352
|
+
```bash
|
|
353
|
+
# Optimize a fragmented table (locks the table briefly)
|
|
354
|
+
mysql -u root -p -e "OPTIMIZE TABLE mydb.orders;"
|
|
355
|
+
|
|
356
|
+
# Analyze tables to update statistics
|
|
357
|
+
mysql -u root -p -e "ANALYZE TABLE mydb.orders;"
|
|
358
|
+
|
|
359
|
+
# Check and repair a table
|
|
360
|
+
mysql -u root -p -e "CHECK TABLE mydb.orders;"
|
|
361
|
+
mysql -u root -p -e "REPAIR TABLE mydb.orders;"
|
|
362
|
+
|
|
363
|
+
# Rotate slow query log
|
|
364
|
+
sudo mv /var/log/mysql/slow.log /var/log/mysql/slow.log.old
|
|
365
|
+
mysqladmin -u root -p flush-logs
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
## Troubleshooting
|
|
369
|
+
|
|
370
|
+
| Symptom | Likely Cause | Fix |
|
|
371
|
+
|---|---|---|
|
|
372
|
+
| `Too many connections` | Connection limit exceeded | Increase `max_connections`; use connection pooling (ProxySQL) |
|
|
373
|
+
| Slow queries across the board | `innodb_buffer_pool_size` too small | Set to ~70% of available RAM and restart |
|
|
374
|
+
| Replication stopped (`SQL_Running: No`) | Duplicate key or schema mismatch on replica | Check `SHOW REPLICA STATUS\G` error; skip or fix the row |
|
|
375
|
+
| `Table is full` | Disk space exhausted or table limit hit | Free disk space; check `innodb_data_file_path` autoextend |
|
|
376
|
+
| `Lock wait timeout exceeded` | Long-running transaction holding row locks | Identify with `SHOW ENGINE INNODB STATUS`; kill the blocking query |
|
|
377
|
+
| High IOPS / disk usage | Redo log too small causing frequent flushes | Increase `innodb_log_file_size` (requires restart) |
|
|
378
|
+
|
|
379
|
+
## Related Skills
|
|
380
|
+
|
|
381
|
+
- postgresql (`postgresql-devsec`) - Alternative relational database
|
|
382
|
+
- database-backups (`database-backups`) - Automated backup strategies
|
|
383
|
+
- redis (`redis`) - Caching layer to reduce database load
|
|
384
|
+
- planetscale (`planetscale`) - Managed MySQL-compatible with branching
|
|
385
|
+
|
|
386
|
+
## Limitations
|
|
387
|
+
|
|
388
|
+
- Infrastructure commands can disrupt services: confirm target host/scope and have backups/snapshots before mutating state.
|
|
389
|
+
- Docs-only import: upstream scripts and templates not bundled.
|
|
390
|
+
|