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 sobre este artículo, al pie del post tienes un formulario para hacerlo.
Si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, en la página de contacto, tienes un formulario más adecuado.
Y para suscribirte y recibir las novedades publicadas, tienes un enlace en el pie de la página o desde aquí mismo.
.