Cómo instalar MySQL 8.0 en Ubuntu 20.04

MySQLMySQL es un gestor / servidor de bases de datos relacionales rápido, eficiente, seguro, estable, fácil de usar, multi plaforma (GNU/Linux, *BSD, Windows, …), 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, bloqueo temporal de usuarios luego de x intentos de autenticación fallidos, tambíen incorpora varias mejoras al motor InnoDB y al tipo de datos JSON.

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

Antes de continuar recomiendo ver Instalando LAMPP Stack en Ubuntu

Instalar servidor y cliente

El paquete mysql-server contiene todas las herramientas necesarias para ejecutar el servidor de base de datos MySQL, el paquete mysql-client es un cliente CLI que te permite conectarte al servidor MySQL y ejecutar consultas de base de datos y tareas de administración.

$ sudo apt install mysql-server mysql-client
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  libcgi-fast-perl libcgi-pm-perl libencode-locale-perl libevent-core-2.1-7 libfcgi-perl libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl libio-html-perl
  liblwp-mediatypes-perl libmecab2 libtimedate-perl liburi-perl mecab-ipadic mecab-ipadic-utf8 mecab-utils mysql-client-8.0 mysql-client-core-8.0 mysql-common mysql-server-8.0 mysql-server-core-8.0
Suggested packages:
  libdata-dump-perl libipc-sharedcache-perl libwww-perl mailx tinyca
The following NEW packages will be installed:
  libcgi-fast-perl libcgi-pm-perl libencode-locale-perl libevent-core-2.1-7 libfcgi-perl libhtml-parser-perl libhtml-tagset-perl libhtml-template-perl libhttp-date-perl libhttp-message-perl libio-html-perl
  liblwp-mediatypes-perl libmecab2 libtimedate-perl liburi-perl mecab-ipadic mecab-ipadic-utf8 mecab-utils mysql-client mysql-client-8.0 mysql-client-core-8.0 mysql-common mysql-server mysql-server-8.0
  mysql-server-core-8.0
0 upgraded, 25 newly installed, 0 to remove and 0 not upgraded.
Need to get 30.6 MB of archives.
After this operation, 248 MB of additional disk space will be used.
Do you want to continue? [Y/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 Sun 2020-08-23 13:25:01 UTC; 47s ago
   Main PID: 14005 (mysqld)
     Status: "Server is operational"
      Tasks: 39 (limit: 1075)
     Memory: 324.2M
     CGroup: /system.slice/mysql.service
             └─14005 /usr/sbin/mysqld

Aug 23 13:25:00 ubuntu systemd[1]: Starting MySQL Community Server...
Aug 23 13:25:01 ubuntu 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 Sun 2020-08-23 22:11:02 UTC; 3s ago
    Process: 15233 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
    Process: 15251 ExecStart=/usr/sbin/mysqld (code=exited, status=0/SUCCESS)
   Main PID: 15251 (code=exited, status=0/SUCCESS)
     Status: "Server shutdown complete"

Aug 23 21:57:21 ubuntu systemd[1]: Starting MySQL Community Server...
Aug 23 21:57:23 ubuntu systemd[1]: Started MySQL Community Server.
Aug 23 22:11:01 ubuntu systemd[1]: Stopping MySQL Community Server...
Aug 23 22:11:02 ubuntu systemd[1]: mysql.service: Succeeded.
Aug 23 22:11:02 ubuntu 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 Ubuntu tenemos las siguiente estructura de directorios para los ficheros de configuración.

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

Detener el servidor

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

$ sudo systemctl stop mysql

Iniciar con el sistema operativo

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

$ sudo systemctl is-enabled mysql
enabled

La salida del comando anterior es enabled o disabled, en caso de de que sea disable ejecute:

$ sudo systemctl enable mysql
Synchronizing state of mysql.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable mysql
Created symlink /etc/systemd/system/multi-user.target.wants/mysql.service → /lib/systemd/system/mysql.service.

Si desea que no se inicie con el sistema operativo ejecute:

sudo systemctl disable mysql
Synchronizing state of mysql.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable mysql
Removed /etc/systemd/system/multi-user.target.wants/mysql.service.

Conectándonos al servidor de base de datos

msyql es un cliente CLI para la administración de MySQL, mysql permite:

  • Conectarnos al servidor de BD
  • Crear BD
  • Administrar usuarios
  • Ejecutar consultas SQL y realizar tareas de administración en general.

Autenticarse como root

El usuario root tiene todos los privilegios sobre el servidor de MySQL, para conectarnos a la base de datos ejecute el siguiente comando.

$ sudo mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.21-0ubuntu0.20.04.4 (Ubuntu)

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

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> 

En caso de no usar sudo ejecute:

# mysql -u root

El símbolo # significa que debe estar autenticado como root, también es posible ejecutando:

$ su -c 'mysql -u root'

YouTube video

Administrar MySQL desde la línea de comandos, 1 (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.