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