Tabla de contenido
Una vez más aquí. Hoy vengo a dejar un pequeño proyecto que me encargaron la semana pasada para una cosa que estuve haciendo en un centro educativo. El caso es que mientras estuve allí, me encontré con que varios de los equipos tenían diferentes servidores de bases da datos instalados en el mismo sistema operativo, y en ocasiones al no cambiarle los puertos entraban en conflicto. La cosa es que me comentaron que estaría bien tener un programa que compruebe que servidores de bases de datos están instalados, que puertos están utilizando, y mediante el programa ofrecer al estudiante o al profesor de gestionar los servicios de forma sencilla. Bueno, pues para eso la semana pasada creé Las bases y sus datos como un script de PowerShell, que allí utilizan Windows para casi todo.
En fin, en el mundo de la administración de bases de datos, la automatización y la facilidad de gestión son aspectos clave para estudiantes, docentes y profesionales, y esa es la idea por la que escribí esto. Tengo que decir que hacía años que me adentraba en el mundo PowerShell, por lo que algunas cosas es posible que estén mal pensadas o mal optimizadas. Pero tras probarlo en el centro al que hacía referencia más arriba, todo funcionaba como esperaba. Por eso, en este artículo, exploraremos en profundidad este proyecto que utiliza dos archivos: un script por lotes (.bat) y un script de PowerShell (.ps1), diseñados para facilitar la gestión de servicios de bases de datos en entornos Windows. Analizaremos cómo funcionan, qué pueden hacer y para quién resultan útiles.
¿Qué es Las bases y sus datos y para qué sirve?
Como decía, este proyecto está compuesto por dos archivos principales:

- gestor_bbdd.bat: Este es archivo por lotes de Windows que actúa como lanzador del script principal. Se puede pasar de este archivo, pero la idea nació en este archivo, aun que al final terminó en el archivo de PowerShell.
- gestor_bbdd.ps1: Este script de PowerShell contiene la lógica para detectar, gestionar y controlar servicios de bases de datos locales como MySQL, MariaDB, PostgreSQL, MongoDB, SQL Server, WAMP, XAMPP, entre otros.
Como comenté, el objetivo principal del proyecto es proporcionar una herramienta sencilla y automatizada para iniciar, detener y monitorizar servicios de bases de datos en entornos de desarrollo local, especialmente en laboratorios, aulas o equipos personales donde se utilizan soluciones como XAMPP, WAMP, Laragon o MAMP.
¿Cómo funciona el gestor Las bases y sus datos?
- Si el usuario utiliza el lanzador automático con permisos de administrador, el archivo gestor_bbdd.bat es el punto de entrada. Su función principal es asegurarse de que el script de PowerShell se ejecute con permisos de administrador, necesarios para gestionar servicios de Windows. El este archivo .bat realiza lo siguiente:
- Comprueba si el usuario tiene privilegios de administrador.
- Si no los tiene, solicita la elevación de permisos usando PowerShell.
- Cambia el título de la ventana y el color para mejorar la experiencia visual.
- Llama al script de PowerShell con la política de ejecución adecuada para evitar bloqueos.
- Mantiene la ventana abierta tras la ejecución para mostrar mensajes o resultados.
- Este enfoque garantiza que el usuario no tenga que preocuparse por configuraciones avanzadas ni permisos manuales, facilitando la experiencia incluso a quienes no son expertos en administración de sistemas.
- Detección y gestión de servicios de bases de datos. El motor del proyecto está en gestor_bbdd.ps1. Este script realiza varias tareas clave:
a) Comprobación de privilegios
Antes de cualquier acción, el script verifica si se está ejecutando con permisos de administrador. Si no es así, muestra advertencias y limita ciertas funciones, ya que la gestión de servicios requiere privilegios elevados.
b) Detección automática de servicios
Utiliza la función DetectarServicios para buscar servicios de Windows cuyo nombre coincida con motores de bases de datos conocidos (MySQL, MariaDB, PostgreSQL, MongoDB, SQL Server, WAMP, XAMPP). Esto permite listar rápidamente qué motores están instalados y disponibles en el sistema.
c) Identificación precisa de motores
En entornos como XAMPP, el ejecutable de MySQL puede ser en realidad MariaDB. Por ello, la función IdentificarMotorMySQL ejecuta el binario correspondiente y analiza la versión para determinar si se trata de MySQL o MariaDB, evitando confusiones y errores en la gestión.
d) Detección de entornos locales
El script busca instalaciones de entornos populares (XAMPP, WAMP, Laragon, MAMP) en todas las unidades del sistema. Para cada entorno detectado, localiza los scripts de inicio y parada de los servicios de base de datos, así como los ejecutables principales, permitiendo al usuario gestionar fácilmente los servidores desde una única interfaz.
e) Gestión de servicios activos
El script puede mostrar información relevante de cada servicio, como el nombre, estado, puerto, PID, uso de RAM y los scripts asociados para iniciar o detener cada motor. Esto es especialmente útil para evitar conflictos entre servicios y mantener el entorno de desarrollo limpio y funcional.
¿Para quién es útil este gestor de bases de datos?
Como comenté al comienzo del post, este programa fue pedido para evitar de forma rápida conflictos de puertos con los servidores de bases de datos. La idea principal es ayudar a los alumnos a poder ver qué está funcionando y qué no, pero también ayudar al profesor de turno a no perder mucho tiempo solucionando problemas relacionados con que una u otra base de datos están utilizando el mismo puerto. Pero al final creo que este proyecto puede resultar útil para:
- Estudiantes de informática: Que necesitan practicar administración de bases de datos en sus equipos personales o en aulas.
- Docentes: Que buscan una herramienta sencilla para que sus alumnos gestionen diferentes motores de bases de datos sin complicaciones.
- Desarrolladores: Que trabajan con múltiples entornos locales y requieren iniciar o detener servicios rápidamente.
- Administradores de sistemas: Que desean automatizar tareas rutinarias y centralizar la gestión de servicios de bases de datos en Windows.
Conclusión y repositorio en GitHub
Como ya he comentado, este gestor de bases de datos con scripts .bat y .ps1 es una solución práctica, automatizada y versátil para la administración de servicios de bases de datos en entornos Windows. Su enfoque en la detección automática, la gestión centralizada y la facilidad de uso lo convierten en una herramienta ideal para estudiantes, docentes y desarrolladores. Además, su estructura modular permite adaptarlo a nuevas necesidades o motores de bases de datos en el futuro.
Mi intención la verdad no era subir este proyecto, al menos no por el momento. Pero como José Luís me dijo que le interesaba y no recuerdo si se lo envié por correo o no, pues lo he subido a un repositorio en GiHub. Por eso si a alguien le puede interesar, verlo, usarlo o modificarlo a su gusto, puede descargar los dos archivo que forman este proyecto, desde el repositorio en el que lo alojé.
