🗄️ 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


👨‍💻 Clientes MySQL


🔧 Usos típicos

MySQL es ideal para sitios web dinámicos que requieren alta velocidad y eficiencia. Suele usarse junto con:

Esta pila se conoce como:

Acrónimo Descripción
💡 LAMP Linux, Apache, MySQL, PHP
💡 LEMP Linux, Nginx, MySQL, PHP

🔐 Seguridad y almacenamiento

⚠️ 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:
{4F0173E8-516C-4F50-9631-9123B277F743}.png

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>";