🗄️ MySQL
MySQL es un sistema de gestión de bases de datos relacionales (RDBMS) SQL de código abierto desarrollado y respaldado por Oracle. Es ampliamente usado para almacenar, organizar y recuperar datos de forma eficiente.
📚 Conceptos básicos
-
🗃️ Base de datos: colección estructurada de datos organizada para facilitar su uso y recuperación.
-
⚙️ Funcionamiento: basado en el principio cliente-servidor.
-
🖥️ Servidor MySQL: gestiona el almacenamiento y la distribución de datos.
-
💻 Clientes MySQL: envían consultas SQL para recuperar o modificar datos.
-
-
📝 Los datos se almacenan en tablas con filas, columnas y tipos de datos específicos.
-
📂 Las bases de datos suelen exportarse/importarse en archivos
.sql(por ejemplo,wordpress.sql).
👨💻 Clientes MySQL
-
🔍 Permiten consultar y modificar datos con sentencias SQL:
- ➕ Inserción, ❌ eliminación, ✏️ actualización y 📖 consulta de datos.
-
🌐 Uso típico: aplicaciones web, gestión de usuarios, contenido dinámico, etc.
-
📝 Ejemplo: WordPress almacena posts, usuarios, permisos, contraseñas en su base de datos MySQL.
🔧 Usos típicos
MySQL es ideal para sitios web dinámicos que requieren alta velocidad y eficiencia. Suele usarse junto con:
-
🐧 Linux (SO)
-
🌐 Apache o Nginx (servidores web)
-
🐘 PHP (lenguaje de scripting)
Esta pila se conoce como:
| Acrónimo | Descripción |
|---|---|
| 💡 LAMP | Linux, Apache, MySQL, PHP |
| 💡 LEMP | Linux, Nginx, MySQL, PHP |
🔐 Seguridad y almacenamiento
-
🔑 Las contraseñas pueden almacenarse en texto plano, pero es práctica común cifrarlas previamente (por ejemplo, con hash unidireccional desde PHP).
-
⚠️ Configuraciones inseguras pueden exponer datos sensibles, incluyendo usuarios y contraseñas.
⚠️ Configuraciones peligrosas frecuentes
| Configuración | Riesgo o función |
|---|---|
👤 user |
Usuario que ejecuta MySQL (privilegios) |
🔒 password |
Contraseña del usuario MySQL (en texto plano) |
🌐 admin_address |
Dirección IP donde MySQL escucha conexiones TCP/IP |
🐞 debug |
Muestra información detallada para depuración, riesgo si está expuesta |
⚠️ sql_warnings |
Muestra advertencias SQL que pueden filtrar info sensible |
📁 secure_file_priv |
Restringe importación/exportación de archivos |
⚠️ La mala configuración puede exponer contraseñas y permitir acceso no autorizado.
🔎 Escaneo y detección
MySQL típicamente escucha en el puerto TCP 3306.
Ejemplo de escaneo con Nmap y scripts para MySQL:
sudo nmap 10.129.49.170 -sV -sC -p3306 --script mysql*
💻 Interacción básica con MySQL
Conexión a MySQL desde consola:
mysql -u <usuario> -p<contraseña> -h <IP_servidor>
Ejemplo:
mysql -u root -pP4SSw0rd -h 10.129.14.128
Comandos útiles en MySQL:

| Comando | Función |
|---|---|
🔢 show databases; |
Muestra bases de datos disponibles |
📂 use <base_de_datos>; |
Selecciona una base de datos |
📋 show tables; |
Muestra tablas en la base de datos seleccionada |
🗂️ show columns from <tabla>; |
Muestra columnas de una tabla |
📄 select * from <tabla>; |
Muestra todo el contenido de una tabla |
🔍 select * from <tabla> where <columna> = "<valor>"; |