En este momento estás viendo Instalar y configurar MySQL 5.7 en Ubuntu Server 20.04

Instalar y configurar MySQL 5.7 en Ubuntu Server 20.04

Continuamos con la instalación de la pila LAMP. Vamos a instalar Mysql 5.7, por requerimientos del hosting, para poder tener, en local, una instalación de la misma aplicación web que tenemos en el hosting.

Sumario

  • Cambio de fuente de Ubuntu 20.04 Server
    • Hacer una copia de seguridad del fichero source original
    • Modificar el fichero sources.list
    • Actualizamos lista de paquetes y los descargamos.
  • Instalación de MySQL
    • Modo de instalación con apt-get install
    • Instalación del paquete de instalación .deb
      • Descargar el paquete de instalación .deb
      • Instalación del paquete .deb
    • Instalación con dpkg
    • Obtener los paquetes de binarios
  • Crear nuevos usuarios y darles permisos

Cambio de fuente de Ubuntu 20.04 Server

El sistema Ubuntu 20.04 se instala directamente con su propia fuente MySQL 8.0, quiero instalar MySQL 5.7. Así que primero debemos cambiar la fuente.

Hacemos una copia de seguridad del fichero source original

sudo cp /etc/apt/sources.list /etc/apt/sources.list.old

Modificar el fichero sources.list

sudo nano /etc/apt/sources.list

Elegí la fuente de espejo Tsinghua (Universidad Japonesa). Tenemos que seleccionar una fuente y pegarla en sources.list, guardar y salir.

# Tsinghua mirror source
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ xenial-security main restricted universe multiverse

Actualizamos lista de paquetes y los descargamos.

sudo apt-get update
sudo apt-get upgrade

Instalacion de MySQL 5.7

Modo de instalación con apt-get install

De este modo el servidor necesitara conectarse a la red.

Ejecutamos el siguiente comando de instalación para instalar Mysql 5.7 Server

sudo apt-get install mysql-server-5.7

Nos pide contraseña para root, la introducimos y OK. Pedirá confirmación.

Instalamos Mysql5.7 client

sudo apt-get install mysql-client-5.7

Instalamos librerías necesarias para MySQL,

sudo apt install libmysqlclient-dev

y comprobamos, después de la instalación, versiones y servicios de mysql.

Para ver la versión de mysql ejecutamos:

mysql -V 

Para ver estado del servicio mysql:

Primero tenemos que instalar el paquete net-tools, para ello ejecutamos:

sudo apt install net-tools
netstat -tap | grep mysql 

Vemos que el servidor mysql está escuchando.

Y tenemos instalado MySQLV5.7.33. Pero hay otras formas de instalarlo…

Instalación del paquete de instalación .deb

Para esta forma de instalación no es necesario que el servidor esté conectado a la red

Descargar el paquete de instalación .deb

El paquete de instalación se puede obtener directamente del sitio web oficial para descargarlo. Tenemos estas opciones:

Obtenerlo directamente desde el servidor ( El Server necesita estar conectado a internet ) con el comando:

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar

Podemos pegar la URL en el buscador para descargar los paquetes comprimidos que necesitemos para instalarlos

https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar

Tambien podemos ir al sitio web oficial para descargas, elegimos la versión de mysql y la versión del sistema operativo, luego hacemos clic en descargar.

Instalación del paquete .deb

Descargamos el paquete (mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar). Lo guardamos en el Servidor, y luego realizamos las siguientes operaciones.

Creamos un nuevo directorio y movemos el paquete de instalación al directorio creado

mkdir mysql5.7.31
mv mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar ./mysql5.7.31

Descomprimimos el paquete descargado antes

cd mysql5.7.31
sudo tar -vxf mysql-server_5.7.31-1ubuntu18.04_amd64.deb-bundle.tar

Y veremos los paquetes .deb a instalar, que son los siguientes:

libmysqlclient20_5.7.31-1ubuntu18.04_amd64.deb
mysql-client_5.7.31-1ubuntu18.04_amd64.deb
mysql-community-source_5.7.31-1ubuntu18.04_amd64.deb
mysql-server_5.7.31-1ubuntu18.04_amd64.deb
mysql-common_5.7.31-1ubuntu18.04_amd64.deb
mysql-testsuite_5.7.31-1ubuntu18.04_amd64.deb
libmysqlclient-dev_5.7.31-1ubuntu18.04_amd64.deb
mysql-community-client_5.7.31-1ubuntu18.04_amd64.deb
mysql-community-server_5.7.31-1ubuntu18.04_amd64.deb
libmysqld-dev_5.7.31-1ubuntu18.04_amd64.deb
mysql-community-test_5.7.31-1ubuntu18.04_amd64.deb

Eliminamos 2 paquetes que no necesitaremos

sudo rm -f mysql-testsuite_5.7.31-1ubuntu18.04_amd64.deb
sudo rm -f mysql-community-test_5.7.31-1ubuntu18.04_amd64.deb

Instalación con dpkg

Vamos con cd al directorio donde tenemos el paquete descargado y ejecutamos:

sudo dpkg -i mysql-*.deb

Si nos informa de un error de que faltan 2 paquetes, libtinfo5 y libmecab2, tendremos que instalarlos de nuevo. Lo haremos de la siguiente manera:

Si el servidor tiene conexión a internet, podemos instalarlos directamente.

sudo apt-get install libtinfo5
sudo apt-get install libmecab2

Cuando el servidor no está conectado a la red, lo descargaremos en otro equipo con conexión y lo copiaremos en el servidor con el comando scp.

URL de descarga: https://ubuntu.pkgs.org/

La descarga de paquetes de software requiere arquitecturas de hardware específicas

Para ver la arquitectura del hardware

uname -m 

En mi caso obtengo la salida:

x86_64 

Obtener los paquetes de binarios

La URL correspondiente se puede copiar en el navegador, luego descargaremos al servidor los paquetes libtinfo5 y libmecab2 para su instalación.

Y los instalamos con dpkg:

sudo dpkg -i libtinfo5_6.2-0ubuntu2_amd64.deb
sudo dpkg -i libmecab2_0.996-10build1_amd64.deb

Instalados estos paquetes volvemos a la instalación de MySQL. Usamos de nuevo la instalación con dpkg

cd mysql5.7.31
sudo dpkg -i mysql-*.deb

Si nos pide la contraseña de root 2 veces, la instalación se ha completado con éxito

Comprobamos las versiones y servicios de mysql. Para ver version de MySQL

mysql -V

Para ver el estado del servicio mysql, instalamos el paquete net-tools, como hemos visto arriba y ejecutamos:

netstat -tap | grep mysql

Crear nuevos usuarios y darles permisos

Si no tenemos ninguna solución de contraseña establecida o hemos olvidado esta:

Paramos el servicio mysql

sudo service mysql stop

Modificamos la configuración del Login de MySQL para no verificar el password de logueo. Editamos,

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

Comentamos la linea «skip-external-locking» y añadimos la linea «skip-grant-tables». Guardamos y salimos.

Para aplicar los cambios tenemos que reiniciar la base de datos mysql

sudo service mysql restart

Establecemos el logueo con contraseña de root

mysql -u root mysql

Modificamos el password root

update mysql.user set authentication_string=password('contraseña') where user='root';

Actualizamos

flush privileges;

Para restaurar la configuración de inicio de sesión de MySQL, editamos el fichero mysqld.cnf

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf 

Borramos o comentamos la linea «skip-grant-tables» y descomentamos la linea «skip-external-locking», guardamos y salimos

el fichero quedaría:

[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking

Y reiniciamos el servicio mysql

sudo service mysql restart

Nos logeamos con el nuevo password

mysql -u user_name -p password Database_name

Por ejemplo, para logearnos con usuario root y password ‘contraseña’:

mysql -u root -p contraseña mysql

Para verificar la instalación ejecutamos:

systemctl status mysql.service

Puedes consultar Comandos básicos de administración de una base de datos con este enlace.

Si tienes algún comentario que hacer, al pie del post tienes un formulario para hacerlo.

Y si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, o te quieres suscribir para recibir un correo-e una vez al mes con las nuevas publicaciones, en la página de contacto, tienes otro formulario.

Deja una respuesta

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