Contáctanos
Webflow Premium Partner Ehab Fayez
Volver a Agent Skills
Datos y Analítica

MySQL Database Administration

Administra bases de datos MySQL con connection pooling, sentencias preparadas y gestión de replicación.

Claude Code Cursor Copilot Windsurf Gemini CLI

Descripción General

mysql2 es un cliente moderno de MySQL para Node.js que proporciona APIs basadas tanto en callbacks como en Promises. Es significativamente más rápido que el paquete mysql original, con soporte para sentencias preparadas, connection pooling, conexiones SSL y el protocolo binario de MySQL para un rendimiento mejorado con conjuntos de resultados grandes.

La librería soporta todas las características de MySQL incluyendo procedimientos almacenados, múltiples sentencias, streaming para consultas grandes y carga de archivos locales. Implementa los plugins de autenticación de MySQL incluyendo caching_sha2_password (predeterminado en MySQL 8) y mysql_native_password. Los pools de conexiones manejan la reconexión automática, la gestión de colas y los eventos del ciclo de vida de las conexiones.

mysql2 es compatible con la API del paquete mysql original, lo que facilita la migración. Proporciona soporte de primera clase para TypeScript con tipado de resultados de consultas. Para uso en producción, soporta réplicas de lectura a través de grupos de conexiones, failover automático y hooks de monitoreo para la salud del pool de conexiones. La librería es utilizada por Sequelize, TypeORM y otros ORMs populares como su driver de MySQL.

¿Para Quién Es?

  • Configurar connection pooling de MySQL con reconexión automática
  • Ejecutar sentencias preparadas para prevenir inyección SQL
  • Transmitir resultados de consultas grandes sin agotamiento de memoria
  • Configurar réplicas de lectura para escalar operaciones de lectura

Instalación

Configurar Claude Code
npm install mysql2

Configuración

import mysql from "mysql2/promise"

const pool = mysql.createPool({
  host: process.env.DB_HOST,
  user: process.env.DB_USER,
  password: process.env.DB_PASSWORD,
  database: process.env.DB_NAME,
  waitForConnections: true,
  connectionLimit: 10,
  queueLimit: 0,
})

const [rows] = await pool.execute(
  "SELECT * FROM users WHERE id = ?",
  [userId]
)