Configuración del Entorno para Pruebas de Rendimiento de JForum: Instalación de MySQL y Preparación de la Base de Datos

Creación de Directorios para Software

En el directorio /root de Linux, crear una carpeta 'software' para almacenar los paquetes de instalación:

[root@localhost ~]# mkdir software
[root@localhost ~]# ll
total 4
-rw-------. 1 root root 1595 Sep 21  2025 anaconda-ks.cfg
drwxr-xr-x  2 root root    6 Abr  2 11:28 software

Creación del Directorio de Aplicación

Crear un directorio '/aplicacion' en el directorio raíz para la instalación de MySQL y otras aplicaciones:

[root@localhost ~]# mkdir /aplicacion

Instalación de MySQL (Método Binario)

Creación del Usuario MySQL

Primero, verificar si el usuario 'mysql' existe:

[root@localhost ~]# id mysql
id: mysql: no such user

Si no existe, crear el usuario con las siguientes restricciones:

[root@localhost ~]# useradd -s /sbin/nologin -M mysql

Parámetros: -s /sbin/nologin impide que el usuario inicie sesión; -M no crea automáticamente el directorio home.

Extracción del Paquete de Instalación

Descomprimir el archivo binario de MySQL:

[root@localhost software]# tar -vxf mysql-5.7.35-linux-glibc2.12-x86_64.tar.gz

Mover la carpeta descomprimida al directorio de aplicaciones y renombrarla:

[root@localhost software]# mv mysql-5.7.35-linux-glibc2.12-x86_64 /aplicacion/mysql-5.7.35

Crear un enlace simbólico para facilitar futuras actualizaciones:

[root@localhost software]# ln -s /aplicacion/mysql-5.7.35/ /aplicacion/mysql

Verificar la estructura del directorio:

[root@localhost software]# cd /aplicacion/
[root@localhost aplicacion]# ll
total 0
lrwxrwxrwx 1 root root  26 Abr  2 11:45 mysql -> /aplicacion/mysql-5.7.35/
drwxr-xr-x 9 root root 129 Abr  2 11:41 mysql-5.7.35

Crear un directorio 'data' para almacenar los datos de la base de datos:

[root@localhost mysql]# mkdir /aplicacion/mysql/data

Inicialización de la Base de Datos

Ejecutar el siguiente comando para inicializar la base de datos:

[root@localhost mysql]# /aplicacion/mysql/bin/mysqld --initialize --basedir=/aplicacion/mysql/ --datadir=/aplicacion/mysql/data/ --user=mysql

Importante: Anote la contraseña temporal generada (ej: zBc*m?G7yxd+), necesitará usarla para el primer inicio de sesión.

Permisos para el Usuario MySQL

Asignar los permisos adecuados al usuario MySQL:

[root@localhost mysql]# chown -R mysql.mysql /aplicacion/mysql-5.7.35

Parámetros: -R o --recursive: procesa recursivamente todos los archivos y subdirectorios.

Generación del Archivo de Configuración

Realizar una copia de seguridad del archivo de configuración predeterminado:

[root@localhost mysql]# mv /etc/my.cnf /etc/my.cnf.bak

Crear un nuevo archivo de configuración:

[root@localhost mysql]# vim /etc/my.cnf

Contenido del archivo de configuración:

[mysql] # Establecer el juego de caracteres predeterminado para el cliente MySQL
default-character-set=utf8 
[mysqld] skip-name-resolve 
# Establecer el puerto 3306 
port = 3306 
# Establecer el directorio de instalación de MySQL
basedir=/aplicacion/mysql          
# Establecer el directorio de almacenamiento de datos de MySQL 
datadir=/aplicacion/mysql/data         
# Permitir el número máximo de conexiones 
max_connections=200 
# El servidor utiliza por defecto el juego de caracteres latin1 de 8 bits
character-set-server=utf8 
# Motor de almacenamiento predeterminado al crear nuevas tablas 
default-storage-engine=INNODB
lower_case_table_names=1 
max_allowed_packet=16M

Problemas Comunes: Comando vim no Disponible y Repositorio yum Inactivo

Si al ejecutar vim aparece el error -bash: vim: command not found, es necesario instalar vim:

[root@localhost mysql]# yum -y install vim

Posible problema: durante la instalación puede aparecer el error Cannot find a valid baseurl for repo: base/7/x86_64.

Causa: A partir del 30 de junio de 2024, el repositorio oficial de CentOS 7 ha dejado de recibir mantenimiento, por lo que el baseurl predeterminado no es accesible.

Solución: modificar manualmente la configuración del repositorio:

(1) Comentar mirrorlist y habilitar el repositorio vault:

[root@localhost mysql]# sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
[root@localhost mysql]# sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*

(2) Limpiar la caché:

[root@localhost mysql]# sudo yum clean all && sudo yum makecache

(3) Alternativa: cambiar al espejo de Alibaba Cloud:

a. Hacer una copia de seguridad del archivo original CentOS-Base.repo:

[root@localhost mysql]# cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

b. Descargar el espejo de Alibaba Cloud en /etc/yum.repos.d/:

[root@localhost mysql]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

c. Limpiar la caché nuevmaente:

[root@localhost mysql]# sudo yum clean all && sudo yum makecache

Inicio y Configuración de MySQL

Modificación de la Ruta del Script de Inicio

La ruta de instalación predeterminada del paquete binario de MySQL es /usr/local/mysql, que necesita ser modificada a la ruta real:

[root@localhost mysql]# sed -i 's#/usr/local/mysql#/aplicacion/mysql#g' /aplicacion/mysql/bin/mysqld_safe

Inicio de MySQL

Iniciar MySQL en segundo plano:

[root@localhost mysql]# /aplicacion/mysql/bin/mysqld_safe &

El símbolo & indica que se ejecuta en segundo plano. Si aparece un mensaje similar a la imagen siguiente, el inicio fue exitoso.

Configuración de Variables de Entorno

Añadir MySQL al PATH del sistema:

[root@localhost mysql]# echo "PATH=/aplicacion/mysql/bin:$PATH">>/etc/profile 
[root@localhost mysql]# source /etc/profile

Verificar las variables de entorno:

[root@localhost mysql]# echo $PATH

Prueba de Conexión

Conectar usando la contraseña temporal:

[root@localhost mysql]# mysql -uroot -pzBc*m?G7yxd+

Donde zBc*m?G7yxd+ es la contraseña generada durante la inicialización.

Modificación de la Contraseña de Root

Establecer una nueva contraseña para el usuario root:

mysql> set password=password('nueva_contraseña');

Habilitar Acceso Remoto

Permitir conexiones remotas al usuario root:

mysql> grant all privileges on *.* to 'root'@'%' identified by 'nueva_contraseña';
mysql> flush privileges;

Configuración del Firewall

Verificar el estado del firewall:

[root@localhost mysql]# systemctl status firewalld.service

Cierre temporal del firewall:

[root@localhost mysql]# systemctl stop firewalld.service

Cierre permanente del firewall:

[root@localhost mysql]# systemctl disable firewalld.service

Configuración del Inicio Automático de MySQL (Opcional)

Script de inicio de MySQL: /aplicacion/mysql/support-files/mysql.server

(1) Copiar el script de inicio al directorio /etc/init.d/ y renombrarlo a mysqld:

[root@localhost mysql]# cp /aplicacion/mysql/support-files/mysql.server /etc/init.d/mysqld

(2) Reemplazar las rutas predeterminadas en el archivo de inicio:

[root@localhost mysql]# sed -i 's#/usr/local/mysql#/aplicacion/mysql#g' /etc/init.d/mysqld

(3) Dar permisos de ejecución al archivo:

[root@localhost mysql]# chmod +x /etc/init.d/mysqld

(4) Detener los procesos de MySQL en ejecución:

Verificar procesos de MySQL:

[root@localhost mysql]# ps aux |grep mysql

Matar los procesos:

[root@localhost mysql]# kill -9 ID_del_proceso_mysql

(5) Reiniciar el servicio MySQL:

[root@localhost mysql]# /etc/init.d/mysqld start

(6) Agregar MySQL a los servicios de inicio automático:

[root@localhost mysql]# chkconfig mysqld on

Creación de la Base de Datos para JForum

(1) Conectar a MySQL:

[root@localhost software]# mysql -uroot -pnueva_contraseña

(2) Crear la base de datos JForum:

mysql> CREATE DATABASE jforum CHARACTER SET utf8;

(3) Crear un usuario y asignar permisos:

mysql> GRANT ALL PRIVILEGES ON *.* TO jforum_usuario@"%" IDENTIFIED BY 'contraseña_segura' WITH GRANT OPTION;

Desglose del comando SQL:

Parte Significado
GRANT ALL PRIVILEGES Concede todos los permisos (SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, etc.)
ON *.* El primer * representa todas las bases de datos, el segundo * representa todas las tablas. Es decir: todas las bases de datos y tablas del servidor MySQL
TO jforum_usuario@"%" jforum_usuario es el nombre de usuario, % es un comodín que permite conexiones desde cualquier dirección IP (local, remota, etc.)
IDENTIFIED BY 'contraseña_segura' Establece la contraseña del usuario (si el usuario no existe, se crea automáticamente)
WITH GRANT OPTION Permite que este usuario otorgue sus permisos a otros usuarios

Advertencia de seguridad: Este comando es peligroso en entornos de producción porque:

  • Crea efectivamente otro usuario con privilegios de root
  • Permite conexiones desde cualquier IP (vulnerable a ataques de fuerza bruta)
  • La contraseña es demasiado simple

Solo se recomienda su uso en entornos de prueba locales o entornos de prueba completamente aislados.

(4) Actualizar los permisos:

mysql> flush privileges;

(5) Verificar si la base de datos JForum se creó correctamente:

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| jforum             |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 filas en el conjunto (0.01 seg)

Etiquetas: MySQL JForum linux pruebas de rendimiento instalación de base de datos

Publicado el 6-29 18:39