Instalación y configuración básica de MySQL

MySQLBeginner
Practicar Ahora

Introducción

En este laboratorio, exploraremos la configuración y el uso básico de MySQL, uno de los sistemas de gestión de bases de datos relacionales (RDBMS) de código abierto más populares. MySQL se utiliza ampliamente en muchas aplicaciones web basadas en bases de datos y sitios web populares. Al finalizar este laboratorio, habrás adquirido experiencia práctica en la verificación de la instalación de MySQL, la protección de su configuración inicial, el acceso al shell de MySQL y el examen de las bases de datos y tablas del sistema.

Verificar la instalación de MySQL

MySQL ha sido preinstalado en tu sistema para mayor comodidad. Sin embargo, es importante comprender el proceso de instalación. En un entorno típico de Ubuntu, utilizarías los siguientes comandos para instalar MySQL:

Los siguientes comandos son solo para fines informativos. No necesitas ejecutarlos, ya que MySQL ya está instalado en tu entorno.

## NO EJECUTES ESTOS COMANDOS
sudo apt update
sudo apt install mysql-server -y

El comando apt update actualiza la lista de paquetes para asegurar que tengas la información más reciente sobre los paquetes disponibles. El comando apt install mysql-server -y instala el paquete del servidor MySQL. La bandera -y se utiliza para responder automáticamente "sí" a cualquier aviso que pueda aparecer durante el proceso de instalación.

Comencemos verificando la instalación de MySQL y comprobando su estado.

Primero, abre una ventana de terminal haciendo clic en el icono de terminal en el escritorio:

Icono de terminal en el escritorio

Una vez en la terminal, ejecuta el siguiente comando para verificar el estado de MySQL:

sudo service mysql status

Este comando utiliza sudo para ejecutarse con privilegios administrativos, lo cual suele ser necesario para operaciones a nivel de sistema. La parte service mysql status solicita al sistema que informe sobre el estado actual del servicio MySQL.

Salida del estado del servicio MySQL

Deberías ver una salida que indica que MySQL está detenido. Esto es lo esperado, ya que aún no hemos iniciado el servicio MySQL.

sudo service mysql start

Espera unos segundos a que el servicio se inicie y luego vuelve a ejecutar el comando de estado:

Salida del estado del servicio MySQL

Acceder al shell de MySQL

Ahora, accedamos al shell de MySQL para realizar algunas operaciones básicas.

Para acceder al shell de MySQL, utiliza el siguiente comando:

sudo mysql -u root

Este comando utiliza sudo para ejecutarse con privilegios administrativos. El comando mysql se utiliza para acceder al shell de MySQL, y la bandera -u root especifica que te estás conectando como el usuario root.

No es necesario proporcionar una contraseña en este caso porque la instalación de MySQL en la máquina virtual de LabEx está configurada para permitir que el usuario root inicie sesión sin contraseña. Esto es común en entornos de desarrollo, pero no debe hacerse en sistemas de producción.

Si tienes éxito, verás un mensaje de bienvenida y el prompt de MySQL:

Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 52
Server version: 10.6.18-MariaDB-0ubuntu0.22.04.1 Ubuntu 22.04

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Ahora estás en el shell de MySQL, donde puedes ejecutar comandos SQL.

El prompt MariaDB [(none)]> indica que estás conectado a MariaDB (una bifurcación o fork de MySQL) y que actualmente no estás utilizando ninguna base de datos específica.

Es importante notar que estás viendo MariaDB en lugar de MySQL. No te preocupes, esto no afectará tu capacidad para completar este laboratorio o aprender los comandos de MySQL. Aquí el motivo:

  1. MariaDB es una bifurcación de MySQL, creada por los desarrolladores originales de MySQL. Está diseñada para ser un reemplazo directo de MySQL, lo que significa que es totalmente compatible con la sintaxis y las operaciones de MySQL.
  2. MariaDB se creó para garantizar que siempre estuviera disponible una versión de código abierto de MySQL. Mantiene una alta compatibilidad con MySQL al tiempo que ofrece algunas características y mejoras únicas.
  3. Para los propósitos de este laboratorio y la mayoría de las operaciones básicas a intermedias de MySQL, puedes tratar a MariaDB exactamente igual que a MySQL. Todos los comandos que usaremos en este laboratorio funcionan de manera idéntica tanto en MariaDB como en MySQL.
  4. MariaDB a menudo se considera más ligero y rápido que MySQL, lo que lo convierte en una excelente opción para entornos de aprendizaje como este laboratorio. Es posible que notes tiempos de respuesta más rápidos, lo que puede hacer que tu experiencia de aprendizaje sea más fluida.
  5. Muchas distribuciones de Linux, incluidas algunas versiones de Ubuntu, ahora utilizan MariaDB como su sistema de base de datos predeterminado compatible con MySQL debido a su naturaleza de código abierto y sus beneficios de rendimiento.

Por lo tanto, cuando veas "MariaDB" en el prompt o en la salida, recuerda que para los propósitos de este laboratorio, puedes considerarlo como MySQL. Todas las habilidades que aprendas aquí serán directamente aplicables tanto a MariaDB como a MySQL en escenarios del mundo real.

Explorar las bases de datos del sistema

Exploremos las bases de datos del sistema. Estas son bases de datos que vienen preinstaladas con MySQL y contienen información importante sobre el propio servidor MySQL.

Si todavía estás dentro del shell de MySQL del paso 2, sal primero a la terminal normal:

EXIT;

Ahora ejecuta el siguiente comando en la terminal:

sudo mysql -u root -e "SHOW DATABASES;" | tee /home/labex/project/system_databases.txt

La opción -e le dice a MySQL que ejecute la sentencia SQL directamente desde la terminal. El comando tee guarda una copia de la salida en /home/labex/project/system_databases.txt, lo que facilita la revisión del resultado más adelante.

Salida de la lista de bases de datos de MySQL

Este comando enumera todas las bases de datos presentes en tu servidor MySQL. Deberías ver una salida similar a esta:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

Desglosemos qué son estas bases de datos:

  • information_schema: Es una base de datos que proporciona acceso a los metadatos de la base de datos.
  • mysql: Esta base de datos contiene información requerida por el servidor MySQL para su funcionamiento.
  • performance_schema: Esta base de datos proporciona una forma de inspeccionar la ejecución interna del servidor en tiempo de ejecución.
  • sys: Esta base de datos contiene un conjunto de objetos que ayudan a los administradores de bases de datos (DBA) y desarrolladores a interpretar los datos recopilados por performance_schema.

Para este laboratorio, nos centraremos en la base de datos mysql. Ejecuta el siguiente comando en la terminal para listar las tablas en esa base de datos y guardar la salida:

sudo mysql -u root -e "USE mysql; SHOW TABLES;" | tee /home/labex/project/mysql_tables.txt

Verás una larga lista de tablas. Estas tablas almacenan diversos datos de configuración y operativos para MySQL.

Examinar datos en las tablas del sistema

Ahora que hemos visto las tablas del sistema, examinemos los datos en una de ellas. La tabla user en la base de datos mysql contiene información sobre las cuentas de usuario de MySQL.

Vuelve a conectarte al shell de MySQL:

sudo mysql -u root

Después de que aparezca el prompt MariaDB [(none)]>, cambia a la base de datos mysql:

USE mysql;

Ejecuta el siguiente comando para ver la estructura de la tabla user:

DESCRIBE user;

Esto te mostrará todas las columnas de la tabla user. Verás muchas columnas, ya que esta tabla contiene información detallada sobre cada usuario de MySQL.

Ahora, veamos algunos de los datos en esta tabla. Nos centraremos en algunas columnas clave:

SELECT User, Host, Password_expired FROM user;

Esta consulta selecciona tres columnas importantes de la tabla user:

  • User: El nombre de usuario de la cuenta de MySQL.
  • Host: El host desde el cual se permite conectar a este usuario.
  • Password_expired: Si la contraseña ha expirado.

Deberías ver una salida similar a esta:

+-------------+-----------+------------------+
| User        | Host      | password_expired |
+-------------+-----------+------------------+
| mariadb.sys | localhost | Y                |
| root        | localhost | N                |
| mysql       | localhost | N                |
+-------------+-----------+------------------+
3 rows in set (0.001 sec)

Esta salida nos muestra las cuentas de usuario de MySQL que existen en el sistema. El usuario root es la cuenta administrativa principal, mientras que las otras son cuentas del sistema utilizadas por MySQL para diversos fines.

Para salir del shell de MySQL, escribe:

EXIT;

Esto te devolverá a tu prompt de terminal habitual.

Resumen

En este laboratorio, hemos cubierto los pasos esenciales para trabajar con MySQL en la máquina virtual de LabEx. Verificamos la instalación de MySQL, aseguramos la configuración inicial, accedimos al shell de MySQL, exploramos las bases de datos del sistema y examinamos los datos en las tablas del sistema.

Aprendimos a:

  1. Comprobar y gestionar el estado del servicio MySQL.
  2. Acceder al shell de MySQL.
  3. Ver las bases de datos del sistema.
  4. Explorar las tablas dentro de las bases de datos del sistema.
  5. Consultar datos de las tablas del sistema.

Estas habilidades fundamentales forman la base para tareas de gestión de bases de datos más avanzadas. A medida que continúes tu viaje con MySQL, desarrollarás estos conceptos básicos para crear tus propias bases de datos, escribir consultas sofisticadas e integrar MySQL con diversas aplicaciones. Recuerda que la práctica es clave para dominar la gestión de bases de datos, así que no dudes en experimentar con diferentes comandos y explorar más a fondo las capacidades de MySQL.