You are on page 1of 7

ESCUELA POLITÉCNICA NACIONAL

Nombre: George Quishpe


Fecha: 24/07/2022

INFORME 5
Objetivos:
● Instalar de manera manual el MySQL-server, es decir, con binarios genéricos de modo que las
configuraciones y ficheros necesarios sean hechos por el usuario.
● Instalar MySQL -server con comprimidos “.deb.tar” de modo que, las configuraciones y
ficheros sean hecho automáticamente por el SO.
● Comparar las ubicaciones de los ficheros creados de manera manual y los ficheros creados por
el SO.

Desarrollo de la práctica:
a. Instalación de servidor MySQL con paquetes genéricos binarios:
1. Primero, se descarga el archivo comprimido “.tar.xz”:

De que tenga la extensión “.tar.xz” significa que es un archivo “.tar” pero mucho más ligero
para que la descarga sea más rápida.
Para los siguientes pasos se harán en una terminal con superusuario “sudo su”.
1. Antes que nada, se debe instalar la librería “libaio1”, ya que MySQL tiene dependencia de la
misma, también, la inicialización del “data” y del servidor fallan si “libaio1” no está instalada.

apt-get install libaio1 libaio-dev

2. Después, se creará el grupo y el usuario “mysql” con los siguientes comandos:

groupadd -g 27 -o -r mysql
useradd -M -N -g mysql -o -r -d /usr/local/mysql/data -s /bin/false -c "MySQL Server" -u 27 mysql

● Las opciones de “groupadd” son “-g 27” y “-r” las cuales son para asignar un ID de
grupo no único y para convertir al grupo en un grupo del sistema respectivamente.
● Las opciones de “useradd” son:
○ -M: impide la creación de un directorio de inicio de usuario.
○ -N: índica que el usuario debe agregarse al grupo especificado por la opción -
g.
○ -o y -u 27: asignan un ID de usuario no único.
○ -r y -s /bin/false: crean un usuario de mysql con fines de propiedad, no
para fines de inicio de sesión.
○ -d: especifica el directorio de inicio de sesión del usuario, que se establece en
la ruta del directorio “data” de MySQL.
○ -c: comentario que describe la cuenta.

3. Ahora, se descomprime el paquete descargado en la ubicación “/usr/local”, eso lo haremos


con los siguientes comandos:

cd /usr/local
tar xvf /home/georgeq/Descargas/mysql-8.0.29-linux-glibc2.12-x86_64.tar.xz

Las opciones de “tar” son:


● -x: para extraer un archivo.
● -v: muestra información detallada del proceso de descompresión.
● -f: descomprime todo en una carpeta con el mismo nombre del “.tar”.

4. Con el siguiente comando se crea un enlace simbólico, y en este caso será un enlace hacia la
carpeta recién descomprimida.

ln -s mysql-8.0.29-linux-glibc2.12-x86_64 mysql

Al enlace se le otorga el nombre “mysql” y el motivo de tenerlo es para poder acceder a la


dirección sin tener que escribir el nombre extenso que tiene.

5. A continuación, se creará un directorio seguro para operaciones de importación y exportación


con el nombre de “mysql-files”:

cd mysql
mkdir mysql-files
chown mysql:mysql mysql-files
chmod 750 mysql-files

● chown: permite cambiar la propiedad del usuario y/o grupo del archivo, carpeta o enlace
simbólico indicado.
● chmod x1x2x3: indica los permisos de propietario (x1), grupo (x2) y otros (x3) del
archivo, carpeta o enlace simbólico indicado.
6. Ahora, se creará el archivo “my.cnf” que tendrá las configuraciones esenciales para el inicio del
servidor. Lo recomendable es crear el fichero en “/etc”, ya que, es la carpeta predeterminada
donde se guardan los archivos de configuración. Y el contenido del archivo está en la sección
de ANEXOS.

cd /etc
vim my.cnf
chown root:root my.cnf
chmod 644 my.cnf

7. Antes de inicializar el servidor se debe crear la carpeta “data” y se asignan los permisos
respectivos:

cd /usr/local/mysql
mkdir data
chmod 750 data
chown mysql:mysql data

8. Y, ahora se ejecuta “mysqld” para inicializar el servidor dando como fichero predeterminado a
“my.cnf”, que ha sido creado anteriormente, y con la opción “--initialize”:

cd /usr/local/mysql
bin/mysqld --defaults-file=/etc/my.cnf --initialize
Si la salida del comando no aparece en la terminal, se puede ver en el directorio
“/usr/local/mysql/data/localhost.localdomain.err” esto es importante revisarlo porque la
clave temporal se encuentra en ese archivo:

9. Para iniciar, reiniciar y parar el servidor con el comando “systemd” debemos crear el fichero
“mysqld.service” en “cd /usr/lib/systemd/system” y dar los permisos respectivos (el
contenido de “mysqld.service”) se encuentra en el apartado de ANEXOS:

cd /usr/lib/systemd/system
vim mysqld.service
chmod 644 mysqld.service

10. Ahora, se habilita el servicio mysqld con el siguiente comando:

systemctl enable mysqld.service

11. Luego, para iniciar el servidor usamos:

systemctl start mysqld

12. y para ver el estado del servidor se usa el comando:

systemctl status mysqld

13. Finalmente, queda configurar la clave de root de mysql, eso se hace con los siguientes
comandos:

sudo apt install libncurses5


cd /usr/local/mysql
bin/mysql -u root -p
Enter password: (ingresar clave temporal dada)
14. Para settear otra contraseña root se usa el comando:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';

b. Instalación de servidor MySQL con paquetes “deb”:


1. Esta instalación es mucho más rápida, donde solo descargamos los paquetes, los
desempaquetamos y los instalamos:

cd Descargas (donde se descargó el comprimido)


tar xvf mysql-server_8.0.29-1ubuntu21.10_amd64.deb-bundle.tar
sudo apt-get install ./*.deb

2. Luego, las configuraciones se hacen de manera gráfica:


3. Ahora, solo sería necesario ver el estado del servidor:

Ya habiendo instalado de ambas formas, se puede verificar que las ubicaciones de los diferentes
archivos no son iguales en la mayoría de los casos, por ejemplo, los ejecutables mysql en la
instalación manual están ubicados en la carpeta “bin” local en “usr/local/mysql”, por otro lado,
en la instalación rápida todos esos ejecutables mysql se encuentran en la carpeta “bin” del SO es
decir en “/usr/bin”. Un cuadro de las ubicaciones de los archivos en las distintas instalaciones es
el siguiente:

Fichero Ubic. Instalación Manual Ubic. Instalación rápida

my.cnf /etc /etc/mysql

binarios, bibliotecas, /usr/local/mysql /usr/bin


encabezados, etc.

data /usr/locla/mysql /var/lib/mysql

mysqld.service /usr/lib/systemd/system /usr/lib/systemd/system

Se denota que por el lado de la instalación manual, la mayoría de los archivos están de manera
local en la carpeta “mysql”, es decir, es como tener instalado MySQL de manera portable, ya que, se
tienen la mayoría de los ficheros que se necesitan en la misma carpeta, con excepción de “my.cnf”,
si es que el usuario quisiera también podría ubicarlo dentro de “mysql” pero tendría que hacer
ciertos cambios al momento de inicializar el servidor. Por otro lado, un archivo que tienen las
ubicaciones en común es “mysqld.service” porque para funcionar el comando systemctl tiene
que tener “mysqld.service” en esa ubicación específica.
Conclusiones:
● En la instalación con binarios genéricos ha sido de manera manual, es decir, el usuario creaba
las carpetas, ficheros y enlaces simbólicos con sus comandos respectivos a medida que la
instalación lo requería.
● En la instalación rápida, las carpetas, ficheros y enlaces simbólicos son creados por el SO, de
modo que, el usuario no tenía que solo poner una contraseña al usuario root de MySQL y así
comenzar a usar ya MySQL.
● Se verificó que las ubicaciones de archivos son distintas en cada tipo de instalación, de manera
que, en la instalación con binarios se tienen la mayoría de las utilidades de MySQL en una carpeta
solamente y al contrario, en la instalación rápida, cada utilidad estaba en directorios distintos.
● El método de instalación manual se consideraría que es una instalación portable porque, como
se mencionó, la mayoría de las utilidades se encuentran dentro de una misma carpeta. El método
de instalación rápida no sería portable, ya que, las utilidades están en carpetas distintas, entonces,
la instalación sería solamente para ese SO en específico.
Recomendaciones:
● En el programa de VirtualBox se tomaron instantáneas antes de hacer alguna de las
instalaciones, de modo que, si ocurría un fallo en la instalación o en el SO podríamos volver a
un punto antes de hacer la instalación.
● Para la instalación manual se debe leer a conciencia el manual otorgado por MySQL para que
la instalación vaya de la mejor manera.
● Descargar los comprimidos correctos para la versión que se tenga de Ubuntu porque aunque se
siga el manual o los pasos correctos, pero la versión no es compatible con su SO no funcionara
de todos modos.
Anexos:
ARCHIVO “my.cnf”

[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
port=3306
log-error=/usr/local/mysql/data/localhost.localdomain.err
user=mysql
secure_file_priv=/usr/local/mysql/mysql-files
local_infile=OFF

ARCHIVO “mysqld.service”
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql

# Have mysqld write its state to the systemd notify socket


Type=notify

# Disable service start and stop timeout logic of systemd for mysqld service.
TimeoutSec=0

# Start main service


ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf $MYSQLD_OPTS

# Use this to switch malloc implementation


EnvironmentFile=-/etc/sysconfig/mysql

# Sets open_files_limit
LimitNOFILE = 10000

Restart=on-failure

RestartPreventExitStatus=1

# Set environment variable MYSQLD_PARENT_PID. This is required for restart.


Environment=MYSQLD_PARENT_PID=1

PrivateTmp=false

Bibliografía:
MySQL, 2022. 2.5.5 Installing MySQL on Linux Using Debian Packages from Oracle. [En línea]
Available at: https://dev.mysql.com/doc/refman/8.0/en/linux-installation-debian.html
[Último acceso: 24 07 2022].
MySQL, 2022. Chapter 4 Installing the MySQL Binary Package. [En línea]
Available at: https://dev.mysql.com/doc/mysql-secure-deployment-guide/8.0/en/secure-deployment-
install.html
[Último acceso: 22 07 2022].
MySQL, 2022. MySQL Community Downloads. [En línea]
Available at: https://dev.mysql.com/downloads/mysql/
[Último acceso: 22 07 2022].

You might also like