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
- Descarga: MySQL se puede descargar desde la página
oficial de MySQL en Oracle. En nuestro caso emplearemos WINGET.
- 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.
- 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.
- 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
- Abre una terminal o CMD (Símbolo del
sistema) en Windows, o una terminal en Linux/macOS.
- 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
Publicar un comentario