WS2025 - MySQL

INTRODUCCIÓN

Esta práctica se centra en la implementación y administración de un sistema de bases de datos MySQL en un entorno Windows, utilizando herramientas de gestión y conexión remota. La actividad se divide en dos fases principales: la instalación y configuración de MySQL Server en Windows Server 2025 y la conexión remota desde un equipo cliente con Windows 11 a través de MySQL Shell y MySQL Workbench.

En primer lugar, en el servidor Windows Server 2025, se instalarán MySQL Server, MySQL Shell y MySQL Workbench empleando Winget, el administrador de paquetes de Windows, para facilitar el proceso de instalación y asegurar el uso de las versiones más actualizadas de los paquetes. A continuación, se configurará un usuario específico, denominado clockworker, con permisos administrativos sobre la base de datos creada en el servidor, el cual se utilizará para todas las tareas de administración de la base de datos durante la práctica.

En la segunda fase, se configurarán MySQL Shell y MySQL Workbench en un equipo cliente con Windows 11 para establecer una conexión remota al servidor de bases de datos. Esta configuración permitirá interactuar con la base de datos desde ambas herramientas, lo que proporciona flexibilidad para realizar consultas y tareas administrativas. MySQL Workbench ofrecerá una interfaz gráfica intuitiva, mientras que MySQL Shell permitirá la ejecución de comandos directamente en el servidor.

Esta práctica aborda los pasos necesarios para instalar y configurar MySQL en un entorno Windows, habilitar un usuario con permisos de administración y gestionar la conectividad remota de forma segura y eficiente, sentando las bases para la configuración y administración de sistemas de bases de datos en entornos de red empresariales.

WINGET

WinGet es una herramienta de línea de comandos desarrollada por Microsoft que permite instalar, actualizar, configurar y gestionar aplicaciones en sistemas operativos Windows de manera rápida y eficiente. Su nombre completo es Windows Package Manager, y es comparable a gestores de paquetes en sistemas operativos como Linux, donde herramientas como apt o yum cumplen funciones similares. Con WinGet, los usuarios pueden evitar la descarga manual de instaladores desde sitios web y automatizar la instalación de programas y actualizaciones.

1. ¿Qué es un Gestor de Paquetes?

Un gestor de paquetes es una herramienta que permite buscar, instalar y actualizar aplicaciones de un catálogo centralizado (o repositorio). En sistemas como Linux, los gestores de paquetes son esenciales, ya que permiten administrar de manera eficiente los programas y sus dependencias. Microsoft implementó WinGet para que los administradores de sistemas y usuarios avanzados puedan gestionar programas en Windows con el mismo nivel de eficiencia.

2. Principales Características de WinGet

WinGet incluye varias características que lo convierten en una herramienta útil para la administración de aplicaciones:

  •   Instalación de aplicaciones: Permite instalar aplicaciones desde un repositorio centralizado de Microsoft. Se pueden instalar múltiples aplicaciones con un solo comando.
  •     Actualización de aplicaciones: Puede actualizar las aplicaciones instaladas que estén en el repositorio, lo que asegura que el software esté siempre en su última versión.
  •     Búsqueda de aplicaciones: Facilita la búsqueda de aplicaciones mediante el comando search.
  •     Desinstalación: Aunque esta función está en desarrollo, WinGet también apunta a permitir la desinstalación de aplicaciones.
  •     Automatización: Permite la creación de scripts que incluyan comandos de instalación y actualización, lo cual es útil para configuraciones iniciales o despliegue de software en múltiples dispositivos.

3. Instalación de WinGet

Desde Windows 10 versión 1809 en adelante, WinGet ya viene incluido en el sistema como parte de la aplicación App Installer. Para versiones anteriores, o si no está instalado, se puede descargar desde la Microsoft Store.

4. Uso Básico de WinGet

Una vez instalado, puedes abrir PowerShell o Símbolo del sistema y utilizar los siguientes comandos básicos:

  •     Buscar una aplicación:

winget search nombre_de_la_aplicacion

Esto busca una aplicación en el repositorio de WinGet.

  •     Instalar una aplicación:

winget install nombre_de_la_aplicacion

Descarga e instala la aplicación especificada. Puedes usar el identificador de la aplicación o su nombre.

  •     Actualizar una aplicación:

winget upgrade nombre_de_la_aplicacion

Actualiza una aplicación a su versión más reciente.

  •     Listar aplicaciones instaladas:

winget list

Muestra todas las aplicaciones instaladas en el sistema que están en el catálogo de WinGet.

  •     Actualizar todas las aplicaciones instaladas:

winget upgrade --all

Actualiza todas las aplicaciones instaladas que tengan una versión nueva disponible en el repositorio.

  •      Desinstalar una aplicación (en desarrollo):

winget uninstall nombre_de_la_aplicacion

5. Repositorio de WinGet

El catálogo de aplicaciones de WinGet es mantenido y gestionado por Microsoft en el repositorio de WINSTALL. Las aplicaciones que están disponibles para instalar con WinGet se encuentran en este repositorio, y Microsoft permite a los desarrolladores externos enviar sus aplicaciones para que sean incluidas. Esto asegura que las aplicaciones en WinGet sean legítimas y seguras.

6. Ejemplos de Uso

Algunos ejemplos prácticos de cómo usar WinGet serían:

  •     Instalar Visual Studio Code:

winget install Microsoft.VisualStudioCode

  •     Buscar aplicaciones que contienen “notepad” en su nombre:

winget search notepad

  •     Actualizar todas las aplicaciones instaladas:

winget upgrade --all

7. Automatización y Scripting

WinGet es especialmente útil en entornos corporativos o educativos donde se necesita configurar rápidamente varias máquinas. Al crear scripts que incluyan comandos de WinGet, se puede automatizar la instalación de software necesario para una empresa o institución educativa, lo cual ahorra tiempo y reduce errores.

8. Ventajas y Desventajas de WinGet

Ventajas:

  •     Simplifica la gestión de aplicaciones en Windows.
  •     Facilita la instalación masiva y la actualización de software.
  •     Integra aplicaciones seguras en su catálogo oficial.
  •     Es gratuito y fácil de usar.    

Desventajas:

  •     Su catálogo, aunque extenso, aún es limitado comparado con sistemas de paquetes en Linux.
  •    No todas las aplicaciones de Windows están en el repositorio de WinGet.
  •    Algunas funcionalidades, como la desinstalación, están en desarrollo o son limitadas.

9. Futuro de WinGet

Microsoft planea mejorar WinGet agregando nuevas funcionalidades, como la integración completa con la Microsoft Store y la posibilidad de gestionar configuraciones adicionales de aplicaciones, así como también mejorar la funcionalidad de desinstalación.   

10. Conclusión

WinGet representa un paso adelante en la administración de aplicaciones para Windows, haciendo que la experiencia de instalar, actualizar y gestionar software sea más eficiente, especialmente para usuarios avanzados y administradores de sistemas.

MySQL

MySQL es un sistema de gestión de bases de datos (DBMS) relacional y de código abierto, desarrollado originalmente por MySQL AB y actualmente propiedad de Oracle Corporation. Se utiliza ampliamente para almacenar, gestionar y recuperar datos en aplicaciones de todo tipo, desde sitios web pequeños hasta sistemas de gestión complejos y plataformas de gran escala como redes sociales y sistemas de comercio electrónico. Su popularidad se debe a su eficiencia, escalabilidad y compatibilidad con múltiples sistemas operativos, incluyendo Windows, Linux y macOS.

A continuación, detallaremos los componentes esenciales de MySQL y algunas de sus herramientas principales: MySQL Server, MySQL Shell y MySQL Workbench.

1. MySQL Server

MySQL Server es el núcleo del sistema de bases de datos MySQL. Es el software que ejecuta las operaciones de administración de datos y realiza las siguientes funciones principales:

  •    Almacenamiento y recuperación de datos: MySQL Server permite almacenar datos en tablas dentro de bases de datos, además de realizar consultas para recuperar y manipular estos datos.
  •    Gestión de transacciones: Soporta transacciones, asegurando la integridad de los datos en entornos que requieren consistencia, como aplicaciones financieras.
  •    Concurrencia: Permite que varios usuarios accedan y manipulen los datos simultáneamente.
  •    Seguridad: Proporciona control de acceso mediante usuarios y contraseñas, permitiendo definir permisos específicos para cada usuario en tablas y bases de datos.
  •    Optimización y rendimiento: Incluye múltiples motores de almacenamiento, como InnoDB y MyISAM, cada uno optimizado para tipos de tareas específicas, lo cual permite ajustar el rendimiento según las necesidades.

Cuando se instala MySQL Server, se configura como un servicio que permanece activo en el sistema y escucha las solicitudes de los clientes que deseen acceder a las bases de datos.

2. MySQL Shell

MySQL Shell es una herramienta de línea de comandos avanzada y flexible que proporciona una interfaz interactiva para interactuar con MySQL Server. Permite realizar tareas administrativas y de desarrollo en MySQL y soporta múltiples lenguajes y modos:

  •    Modos de ejecución:
    •    SQL: Para ejecutar sentencias SQL tradicionales.
    •    JavaScript (JS): Permite la interacción y el desarrollo con MySQL utilizando scripts en JavaScript.
    •    Python (Py): Similar al modo de JavaScript, pero usa Python, lo que facilita la integración de MySQL en proyectos de ciencia de datos y aplicaciones de backend.
  •    Características principales:
    •    Automatización: MySQL Shell permite automatizar tareas administrativas y de mantenimiento usando scripts.
    •    Instancias y clusters: Soporta configuraciones avanzadas como MySQL InnoDB Cluster, que permite alta disponibilidad y escalabilidad.
    •    Depuración y monitoreo: Incluye funciones para inspeccionar y monitorear el estado de las bases de datos y los clústeres, lo cual es esencial en sistemas de producción.

MySQL Shell es especialmente útil para administradores y desarrolladores que necesitan automatizar y simplificar tareas mediante scripting en entornos complejos o distribuidos.

3. MySQL Workbench

MySQL Workbench es una interfaz gráfica (GUI) para MySQL diseñada para facilitar la administración, el diseño y el desarrollo de bases de datos sin necesidad de utilizar la línea de comandos. Ofrece herramientas visuales para el trabajo con bases de datos y está orientado tanto a desarrolladores como a administradores de bases de datos (DBAs).

  •    Principales funcionalidades de MySQL Workbench:
    •    Modelado de datos: Permite crear modelos de bases de datos visualmente. Con esta herramienta se pueden diseñar tablas, relaciones y restricciones mediante diagramas ER (Entidad-Relación), que luego pueden implementarse directamente en MySQL Server.
    •    Administración de bases de datos: Proporciona una interfaz para realizar tareas comunes de administración como crear, editar y borrar bases de datos, gestionar usuarios y permisos, y monitorear la salud del servidor.
    •     Editor SQL: Incluye un editor de consultas SQL con autocompletado, resaltado de sintaxis y herramientas para ejecutar y probar consultas.
    •    Importación y exportación de datos: Permite migrar datos entre distintos sistemas de bases de datos y exportar datos a varios formatos, como CSV o JSON.
    •    Backups y restauración: MySQL Workbench facilita la creación de copias de seguridad y la restauración de bases de datos, asegurando la integridad y disponibilidad de los datos.

MySQL Workbench es particularmente útil en entornos donde se desea una administración visual de las bases de datos y para quienes prefieren evitar la línea de comandos.

4. Resumen Comparativo de los Componentes

5. Instalación y Configuración de MySQL

  1.     Descarga: MySQL se puede descargar desde la página oficial de MySQL en Oracle. En nuestro caso emplearemos WINGET.
  2.     Instalación de MySQL Server: Durante la instalación, es común definir una contraseña para el usuario "root" (administrador principal) y elegir el tipo de configuración.
  3.     Configuración de MySQL Shell: MySQL Shell se instala junto con MySQL Server o se puede instalar por separado. Para usarlo, simplemente abre la línea de comandos y ejecuta mysqlsh.
  4.     Instalación de MySQL Workbench: Este se instala como un programa independiente. Después de instalarlo, solo necesitas configurarlo para conectarse a MySQL Server, especificando el host (dirección del servidor), el usuario y la contraseña.

6. Conclusión

MySQL es una de las soluciones de gestión de bases de datos más utilizadas a nivel mundial, y sus herramientas adicionales (MySQL Server, Shell y Workbench) cubren desde la administración de bases de datos hasta el desarrollo y la automatización. Estas herramientas hacen que MySQL sea flexible y fácil de integrar en proyectos de todos los tamaños, desde aplicaciones personales hasta entornos de producción a gran escala.

MySQL SHELL

La MySQL Shell es una herramienta avanzada de línea de comandos que permite interactuar con MySQL Server de forma más flexible y con soporte para múltiples lenguajes (SQL, JavaScript y Python). Esto es especialmente útil para realizar tareas administrativas, ejecutar scripts y gestionar bases de datos con un control más profundo que el cliente estándar de MySQL.

A continuación, te explico cómo usar MySQL Shell, desde la instalación y conexión, hasta la ejecución de comandos en diferentes modos.

1. Instalación de MySQL Shell

  •     Descarga: Si no tienes MySQL Shell instalado, puedes descargarlo desde la página oficial de MySQL o mediante WINGET. MySQL Shell puede instalarse de forma independiente o junto con MySQL Server.
  •     Verifica la instalación: Una vez instalado, asegúrate de que el archivo mysqlsh esté en el PATH del sistema o en la carpeta bin de MySQL.

2. Iniciar MySQL Shell

  1.    Abre una terminal o CMD (Símbolo del sistema) en Windows, o una terminal en Linux/macOS.
  2.      Ejecuta el siguiente comando para iniciar MySQL Shell:

mysqlsh

Verás un prompt de MySQL Shell, que por defecto estará en el modo JavaScript (indicando MySQL JS al inicio):

MySQL  JS >

3. Conectarse a un Servidor MySQL desde MySQL Shell

Para conectarte a MySQL Server desde MySQL Shell, usa el siguiente comando:

\connect usuario@hostname:puerto

Por ejemplo, para conectarte al servidor local (localhost) en el puerto por defecto (3306) como el usuario root:

\connect root@localhost:3306

Te pedirá la contraseña del usuario. Al introducirla correctamente, verás el prompt conectado:

MySQL  localhost:3306 ssl  JS >

También puedes usar directamente:

mysqlsh root@localhost -p

donde -p indicará que se solicitará la contraseña.

4. Modos de MySQL Shell: SQL, JavaScript y Python

MySQL Shell soporta tres modos de ejecución diferentes:

  •     Modo SQL (SQL): Para escribir y ejecutar comandos SQL.
  •    Modo JavaScript (JS): Ejecuta scripts en JavaScript, ideal para tareas de administración y automatización.
  •    Modo Python (Py): Ejecuta scripts en Python, útil en proyectos de ciencia de datos o desarrollo de aplicaciones que necesitan interactuar con MySQL.

Puedes cambiar entre modos usando los siguientes comandos:

  •     Para cambiar al modo SQL:

\sql

El prompt cambiará a:

MySQL  localhost:3306 ssl  SQL >

  • Para cambiar al modo JavaScript:

\js

Verás el prompt:

MySQL  localhost:3306 ssl  JS >

  • Para cambiar al modo Python:

\py

El prompt cambiará a:

MySQL  localhost:3306 ssl  Py >

Cada modo permite ejecutar comandos específicos de su lenguaje y es útil dependiendo de la tarea que desees realizar.

5. Ejemplos de Comandos en Cada Modo

En Modo SQL

Para ejecutar comandos SQL como en el cliente MySQL normal:

SHOW DATABASES;

CREATE DATABASE test_db;

USE test_db;

SELECT * FROM tabla;

En Modo JavaScript

En este modo, puedes ejecutar comandos y scripts en JavaScript, accediendo a funciones específicas de MySQL Shell:

// Mostrar bases de datos en JavaScript

shell.getSession().getSchemas();

// Crear una base de datos en JavaScript

shell.getSession().sql("CREATE DATABASE test_db").execute();

En Modo Python

Si cambias al modo Python, puedes utilizar Python para interactuar con MySQL:

# Mostrar bases de datos en Python

session = shell.get_session()

databases = session.get_schemas()

for db in databases:

    print(db.get_name())

6. Comandos Útiles en MySQL Shell

  •     Ayuda: Para ver una lista de comandos disponibles:

\help

  •     Salir de MySQL Shell:

\exit

o simplemente presiona Ctrl + D.

  •     Ejecutar scripts externos: Puedes ejecutar archivos SQL o scripts desde MySQL Shell. Por ejemplo, para ejecutar un archivo SQL:

\source ruta/del/archivo.sql

7. Automatización y Administración con MySQL Shell

MySQL Shell es especialmente potente para realizar operaciones de administración avanzadas, como la configuración de InnoDB Cluster para alta disponibilidad, replicación, o tareas de mantenimiento mediante scripts en JavaScript o Python. Estas funcionalidades lo hacen ideal para entornos de producción y entornos distribuidos.

8. Resumen

  •    MySQL Shell es una herramienta avanzada que permite ejecutar comandos SQL, scripts en JavaScript o Python.
  •     Puedes cambiar entre modo SQL, JavaScript y Python según tus necesidades.
  •   MySQL Shell facilita tanto la administración básica como la avanzada, permitiendo la automatización y la administración de clústeres.

Usando MySQL Shell podrás ejecutar tareas complejas y administrar MySQL de manera eficiente en entornos de desarrollo y producción.

La estructura de red empleada en la práctica es la siguiente.




Comentarios

Entradas populares