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:
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
Instalar servidor y herramientas clientes
$ sudo apt update && sudo apt install mysql-server
Configuración contraseña root
Configuración 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>
Administrar MySQL desde la línea de comandos, 2 (18)
- Cómo instalar MySQL 8.0 en Ubuntu 20.04
- Como instalar MySQL 8.0 en Debian
- Cómo instalar MariaDB en Alpine Linux
- Cómo instalar MariaDB en NetBSD
- MySQL 8.0, cambiar contraseña de root
- ¿Cómo mostrar variables del sistema en MySQL?
- Deshabilitar innodb engine en mysql
- Administrar servidor MySQL – Básico
- Motores de almacenamiento disponibles/habilitados en MySQL
- MySQL: Recuperar la clave (password) de root
- MySQL Administración de usuarios
- MySQL ejecutar script SQL
- Copias de seguridad (Backup) en MySQL
- Crear / Modificar / Eliminar tablas en MySQL
- Connectarse a MySQL desde la LAN
- Character set disponibles en MySQL
- MySQL no puede escribir en el dir /tmp
- Cómo instalar MySQL 5.7 en CentOS 7