Como instalar MySQL 8.0 en Debian

MySQL

MySQL es un gestor / servidor de bases de datos relacionales rápido, eficiente, seguro, estable, fácil de usar, multi plaforma, multi hilo, multi usuario y bien documentado. Actualmente Oracle guía el desarrollo de MySQL, no obstante la versión comunitaria está disponible bajo licencia GPL por lo que sigue siendo software libre.

MySQL 8.0:

  • Mejora aspectos de seguridad.
  • Añade el concepto de roles y categorías de cuentas de usuarios.
  • Permite realizar bloqueo temporal de usuarios luego de x intentos de autenticación fallidos.
  • Incorpora varias mejoras al motor InnoDB y al tipo de datos JSON.
  • Añade el nuevo mecanismo de autenticación: caching_sha2_password que implementa el algoritmo de encriptación SHA-256 (al igual que el mecanismo sha256_password) pero usando una cache para resolver problemas de latencia durante el proceso de conexión.

Para ver todos los cambios realizados en MySQL 8.0 remítase a: What Is New in MySQL 8.0

Instalar

MySQL 8.0 no está disponible en los repositorios oficiales de Debian ya que ha sido reemplazado por MariaDB, una bifurcación de MySQL y aunque comparten características este último tiene un modelo de desarrollo y comunidad diferente a MySQL.

MySQL 8.0 puede ser descargado desde el sitio oficial de descarga de MySQL, no obstante es recomendable descargar la definición de repositorio para mantenernos actualizados con las mejoras y corrección de errores.

Descargar definición del repositorio de MySQL

Vamos a la sección de descarga y seleccionamos MySQL Community (GPL) Downloads, luego MySQL APT Repository hacemos click en Download que nos redirecciona a una página como la que se muestra a continuación:

image

Ponemos el mouse sobre el link: «… just start my download» y copiamos el link, luego ejecutamos CURL o wget

$ curl -LO# https://dev.mysql.com/get/mysql-apt-config_0.8.17-1_all.deb

Instalar el repositorio de MySQL

$ sudo sh -c 'apt install lsb-release gnupg wget && dpkg -i mysql-apt-config_0.8.17-1_all.deb'

Configuración apt

configuración apt

Instalar servidor y herramientas clientes

$ sudo apt update && sudo apt install mysql-server

Configuración contraseña root

configuración contraseña root

Configuración mecanismo autenticación

configuración mecanismo autenticación

Seleccionar mecanismo autenticación

Seleccionar mecanismo autenticación

Administrar el proceso del servidor

En esta parte aprenderemos cómo iniciar, detener o reiniciar el servicio mysql, para esto usaremos el sistema de inicialización systemd (systemd es un reemplazo para el sistema de inicialización SysV y también un conjunto de configuración y gestión de servicios para el sistema operativo GNU/Linux)

Comprobar estado

Luego de instalado el servidor y las herramientas clientes puede comprobar si su se servidor de BD se ha iniciado correctamente ejecutando el siguiente comando:

$ sudo systemctl status mysql
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2021-04-02 21:46:43 CEST; 2min 59s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 20071 ExecStartPre=/usr/share/mysql-8.0/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 20106 (mysqld)
   Status: "Server is operational"
    Tasks: 38 (limit: 2296)
   Memory: 337.1M
   CGroup: /system.slice/mysql.service
           └─20106 /usr/sbin/mysqld

Apr 02 21:46:42 webserver systemd[1]: Starting MySQL Community Server...
Apr 02 21:46:43 webserver systemd[1]: Started MySQL Community Server.

Iniciar el servidor

Si el comando anterior nos hubiera mostrado la siguiente información (note el Active: inactive):

● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Fri 2021-04-02 22:16:50 CEST; 3s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 20071 ExecStartPre=/usr/share/mysql-8.0/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
  Process: 20106 ExecStart=/usr/sbin/mysqld (code=exited, status=0/SUCCESS)
 Main PID: 20106 (code=exited, status=0/SUCCESS)
   Status: "Server shutdown complete"

Apr 02 21:46:42 webserver systemd[1]: Starting MySQL Community Server...
Apr 02 21:46:43 webserver systemd[1]: Started MySQL Community Server.
Apr 02 22:16:48 webserver systemd[1]: Stopping MySQL Community Server...
Apr 02 22:16:50 webserver systemd[1]: mysql.service: Succeeded.
Apr 02 22:16:50 webserver systemd[1]: Stopped MySQL Community Server.

entonces podemos iniciar el servidor con el siguiente comando:

$ sudo systemctl start mysql

Reiniciar el servidor

Para aplicar cualquier modificación realizada al fichero de configuración debe reiniciar el servidor con el siguiente comando:

$ sudo systemctl restart mysql

En Debian tenemos las siguiente estructura de directorios para los ficheros de configuración.

 /etc/mysql/
├── conf.d
│   └── mysql.cnf
├── my.cnf -> /etc/alternatives/my.cnf
├── my.cnf.fallback
├── mysql.cnf
└── mysql.conf.d
    └── mysqld.cnf   

Detener el servidor

Si desea detener completamente el servidor de base de datos ejecute el siguiente comando:

$ sudo systemctl stop mysql

Arranque automático

Puede asegurarse de que MySQL comenzará después de un reinicio del sistema ejecutando el siguiente comando:

$ sudo systemctl is-enabled mysql
enabled

Conectarnos al servidor

# sudo mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.24 MySQL Community Server - GPL

Copyright (c) 2000, 2021, Oracle and/or its affiliates.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

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

mysql> 
YouTube video

Administrar MySQL desde la línea de comandos, 2 (18)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.