Un sistema de gestión de bases de datos (DBMS) Es un software diseñado para crear, gestionar y manipular bases de datos. Un SGBD proporciona una interfaz para interactuar con las bases de datos, lo que permite la creación, protección, lectura, actualización y eliminación de datos. También gestiona la seguridad, la integridad de los datos y el acceso concurrente, lo que lo hace indispensable para aplicaciones modernas, desde pequeños sitios web hasta grandes sistemas empresariales.
Un SGBD desempeña un papel crucial en la organización de datos, ya que garantiza la consistencia, minimiza la redundancia y simplifica el acceso. Sin un SGBD, la gestión de grandes volúmenes de datos sería compleja e ineficiente, especialmente en aplicaciones web que requieren un acceso rápido a los datos. Según datos de W3Techs de julio de 2025, los SGBD relacionales como MySQL se utilizan aproximadamente en 43% de sitios web con tecnologías de bases de datos conocidas.
Descripción general de los DBMS más populares
- MySQL:Un DBMS relacional de código abierto ampliamente utilizado para aplicaciones web debido a su velocidad, confiabilidad y soporte para múltiples motores de almacenamiento como InnoDB, que proporciona conformidad con ACID (atomicidad, consistencia, aislamiento, durabilidad). MySQL es popular en el desarrollo web, especialmente para plataformas como WordPress.
- PostgreSQL:Un DBMS relacional de código abierto conocido por características avanzadas como soporte para consultas complejas, tipos de datos extendidos y estricto cumplimiento del estándar SQL. PostgreSQL A menudo se elige para aplicaciones empresariales donde la integridad de los datos es fundamental.
- SQLiteUn sistema de gestión de bases de datos (DBMS) ligero y sin servidor, ideal para sistemas embebidos, aplicaciones móviles y proyectos pequeños. SQLite no admite acceso multiusuario ni alta concurrencia, pero es fácil de usar y no requiere configuración del servidor.
Por qué MySQL?
MySQL Fue seleccionado para esta guía debido a su compatibilidad superior con PHP y WordPress, facilidad de uso y amplio soporte de la comunidad. MySQL Es una de las bases de datos más populares para aplicaciones web, ya que ofrece un equilibrio entre rendimiento y simplicidad de configuración. Según las normas oficiales WordPress requisitos, requiere MySQL versión 5.7 o superior (o MariaDB 10.3+). MySQL Se integra con PHP a través de extensiones como mysqli or mysqlnd, haciéndolo ideal para WordPress, Que utiliza MySQL para almacenar el contenido del sitio, la configuración y los datos del usuario.
MySQL También cuenta con el respaldo de importantes empresas, como Google (Cloud SQL), LinkedIn y Netflix (para servicios específicos), lo que confirma su fiabilidad y escalabilidad. Su fácil instalación y la extensa documentación hacen... MySQL Accesible tanto para principiantes como para administradores experimentados.
Requisitos previos
Antes de instalar MySQL on Ubuntu, asegúrese de que se cumplan las siguientes condiciones:
- Ubuntu sistema operativo:Esta guía utiliza Ubuntu 24.04 LTS (compatible hasta 2034), pero las instrucciones se aplican a otras versiones como 20.04 o 22.04. Ubuntu Es una opción popular para servidores debido a su estabilidad y al apoyo de la comunidad.
- Acceso root o sudoLa instalación de paquetes y la modificación de archivos del sistema requieren privilegios administrativos. Use una cuenta con sudo o acceso root.
- Sistema actualizado:Actualice el sistema antes de la instalación para evitar problemas de dependencia:
sudo apt update && sudo apt upgrade - Acceso a terminales:Asegurar el acceso a la terminal, ya sea localmente o a través de SSH para servidores remotos.
También se recomienda configurar un firewall (por ejemplo, UFW) para un acceso seguro a MySQL Puerto (3306). Permitir solo conexiones desde IP de confianza.
sudo ufw allow from 192.168.1.100 to any port 3306/tcpLa instalación de MySQL on Ubuntu
MySQL instalación en Ubuntu utiliza el apto gestor de paquetes, que instala la última versión disponible MySQL versión de Ubuntu repositorios. A partir de julio de 2025, Ubuntu 24.04 tiene como valor predeterminado MySQL versión 8.0.x (por ejemplo, 8.0.38 o más reciente).
Pasos de la instalación
- Actualizar listas de paquetes
Actualice el índice de paquetes para asegurarse de instalar las últimas versiones:sudo apt update - Instalar MySQL servidor
Instale la Servidor mysql paquete, que incluye el MySQL Servidor y dependencias requeridas:sudo apt install mysql-serverEste comando instala e inicia automáticamente el MySQL servicio. Después de la instalación, MySQL Se configurará para iniciarse automáticamente al arrancar el sistema.
- Verificar MySQL versión
Confirme la instalación exitosa verificando la versión:mysql --versionResultado esperado, por ejemplo:
mysql Ver 8.0.38-2ubuntu3 for Linux on x86_64 ((Ubuntu)) - Ejecutar script de seguridad
Para mejorar la seguridad, ejecute:sudo mysql_secure_installationEste script lo guiará a través de varios pasos de configuración:
- Configuración del complemento VALIDAR CONTRASEÑA:Configurar la política de complejidad de contraseña (nivel recomendado 2).
- Establecer contraseña de root:Si no se establece una contraseña, cree una contraseña segura para el MySQL cuenta root.
- Eliminar usuarios anónimos: Respuesta Y (Si) para eliminar cuentas anónimas.
- No permitir el inicio de sesión remoto de root: Respuesta Y para evitar el inicio de sesión root desde hosts remotos.
- Eliminar la base de datos de prueba: Respuesta Y para eliminar las bases de datos de demostración.
- Recargar tablas de privilegios: Respuesta Y para aplicar cambios
Respondiendo Y Se recomienda responder a todas las preguntas para máxima seguridad.
Configuración básica
Después de instalar MySQLconfigúrelo para un funcionamiento óptimo. El archivo de configuración principal se encuentra en /etc/mysql/mysql.conf.d/mysqld.cnf, que contiene configuraciones específicas del servidor.
Descripción general del archivo de configuración
El archivo /etc/mysql/mysql.conf.d/mysqld.cnf Contiene secciones:
- [Mysqld]: MySQL configuración del servidor (puerto 3306, directorio de datos / var / lib / mysql).
- [cliente]:Configuración para MySQL clientes.
Utilice un editor de texto para modificar el archivo:
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnfEjemplo de modificación: aumento del tamaño del búfer InnoDB:
[mysqld]
innodb_buffer_pool_size = 256MDespués de realizar los cambios, reinicie MySQL:
sudo systemctl restart mysqlConfiguración de cuentas de usuario
MySQL 8.0 tiene como valor predeterminado el caché_sha2_contraseña Complemento de autenticación. Para compatibilidad con aplicaciones anteriores, cámbielo:
- Iniciar sesión en MySQL cáscara:
sudo mysql - Crear un usuario con autenticación compatible:
CREATE USER 'new_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'secure_password'; - Otorgar los privilegios necesarios:
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER ON *.* TO 'new_user'@'localhost'; - Aplicar cambios:
FLUSH PRIVILEGES; - Salir:
EXIT;
Crear un WordPress Base de datos y usuario
WordPress Requiere una base de datos y un usuario con los privilegios adecuados. Siga estos pasos:
- Iniciar sesión en MySQL shell
Inicie sesión como root:sudo mysql - Crear base de datos
Crea una base de datos llamada wordpress:CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; - Crear usuario
Créar un WordPress usuario:CREATE USER 'wp_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'secure_password';Reemplace contraseña segura con una contraseña segura.
- Otorgar privilegios
Asignar los privilegios mínimos necesarios para el wordpress base de datos:GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES
ON wordpress.* TO 'wp_user'@'localhost'; - Aplicar los cambios
Recargar tablas de privilegios:FLUSH PRIVILEGES; - Salida de shell
EXIT;
Prueba de conexión a la base de datos
Para verificar que el usuario puede conectarse a la base de datos:
- Iniciar sesión con nuevo usuario
Conectar a MySQL as usuario_wp:mysql -u wp_user -pIntroduce la contraseña.
- Comprobar el acceso a la base de datos
Seleccione la base de datos y verifique los privilegios:USE wordpress;
SHOW TABLES;Si los comandos se ejecutan sin errores, la conexión funciona.
- Salida de shell
EXIT;
Localización de averías
If MySQL no funciona como se esperaba, utilice estos métodos de diagnóstico:
- Comprobar MySQL estado del servicio
sudo systemctl status mysqlSi está inactivo, iniciarlo:
sudo systemctl start mysql - Ver registros de errores
sudo tail -50 /var/log/mysql/error.log - Resolución de problemas comunes
- MySQL Error de autenticación 8.0:Restablecer contraseña root:
sudo systemctl stop mysql
sudo mysqld_safe --skip-grant-tables &
mysql -u rootIn MySQL cáscara:
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_strong_password';
EXIT;Reiniciar el servidor:
sudo systemctl start mysql - Puerto 3306 ocupado:
sudo ss -tulpn | grep ':3306' - problemas de compatibilidad:Si las aplicaciones no admiten el nuevo método de autenticación:
ALTER USER 'user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
- MySQL Error de autenticación 8.0:Restablecer contraseña root:
Instalar y configurar MySQL on Ubuntu es un proceso sencillo que prepara una base de datos confiable para aplicaciones web como WordPressSiguiendo estos pasos, podrás instalar MySQL, configurar un WordPress base de datos y usuario, probar la conectividad y resolver posibles problemas. MySQL sigue siendo popular debido a su compatibilidad con PHP, facilidad de uso y soporte de la comunidad.
Tabla: Comandos de teclado para MySQL Instalacion y configuracion
| Comando | Descripción |
|---|---|
| sudo ufw permite desde 192.168.1.0/24 a cualquier puerto 3306 | Abrir de forma segura MySQL Puerto |
| sudo apt instalar mysql-server | Instalar MySQL |
| sudo mysql_secure_installation | Configuración de seguridad |
| CREAR USUARIO 'usuario'@'localhost' IDENTIFICADO CON mysql_native_password POR 'pass' | Crear usuario (método compatible) |
| CONCEDER SELECCIONAR, INSERTAR, ACTUALIZAR, ELIMINAR EN db.* A 'usuario'@'localhost' | privilegios mínimos |
| sudo mysqld_safe --skip-grant-tables & | Iniciar en modo recuperación |
| ALTER USUARIO 'root'@'localhost' IDENTIFICADO POR 'new_pass' | Restablecer la contraseña de root |