Instalar MySQL y la primera base de datos
Explicamos paso a paso cómo instalar el servidor MySQL en tres sistemas operativos, definir un usuario y permisos seguros, y crear la primera base de datos y la primera tabla.

Para instalar MySQL en Windows y macOS, descargue de dev.mysql.com el instalador de la versión LTS y establezca la contraseña de root; en Ubuntu basta con sudo apt install mysql-server. Tras la instalación, conéctese con mysql -u root -p, cree la primera base de datos con CREATE DATABASE y genere un usuario aparte para su aplicación, con permisos solo sobre esa base de datos.
Qué es MySQL y por qué elegirlo
MySQL es uno de los sistemas de bases de datos relacionales más extendidos del mundo: almacena los datos en tablas y se consulta con el lenguaje SQL. Muchísimo software, como webs, sistemas de e-commerce y aplicaciones de reservas o de inventario, utiliza por detrás MySQL o MariaDB, que es compatible con él.
MySQL tiene dos familias de versiones: las versiones LTS, con soporte prolongado, y las versiones de innovación, que traen antes las novedades. Para proyectos profesionales y para aprender, elija la LTS; compruebe cuál es la LTS vigente en la página de descargas de dev.mysql.com.
En esta guía instalamos MySQL Community Server, es decir, la edición gratuita de la comunidad. Si solo quiere hacer una prueba rápida con PHP, también sirve un paquete ya preparado que incluye MariaDB; lo explicamos en nuestra guía de instalación de XAMPP.
Instalar MySQL en Windows
En la página de descargas elija el instalador MSI para Windows. En las versiones actuales, al terminar la instalación se abre MySQL Configurator, que le permite configurar el servidor paso a paso; en las versiones antiguas esto se hacía con MySQL Installer. Si la página de descargas le pide iniciar sesión con una cuenta de Oracle, puede descargarlo directamente con el enlace «No thanks, just start my download».
- En el tipo de instalación, para un equipo de desarrollo elija el perfil Development Computer; este perfil mantiene bajo el consumo de memoria.
- En la configuración de conexión deje el puerto 3306 por defecto; si otra base de datos del equipo usa ese puerto, introduzca un valor como 3307.
- En el método de autenticación mantenga la opción de cifrado fuerte recomendada.
- Establezca la contraseña de root y anótela en un lugar seguro; es la cuenta con más privilegios del servidor.
- Registre MySQL como servicio de Windows y elija que se inicie con el arranque del equipo.
- En el último paso aplique la configuración; cuando todos los pasos reciban la marca verde, el servidor está listo.
Instalación en macOS y Linux
En macOS, el paquete DMG oficial instala un panel en las preferencias del sistema; desde allí se inicia y se detiene el servidor. Si usa Homebrew, la instalación y la gestión del servicio se hacen con dos comandos.
En Ubuntu y Debian, el servidor MySQL está en el repositorio de la distribución. En Ubuntu, tras la instalación el usuario root se autentica por defecto con el método auth_socket; es decir, en lugar de contraseña se conecta con el comando sudo mysql. En ambos sistemas recomendamos ejecutar después de la instalación el script mysql_secure_installation: elimina los usuarios anónimos y la base de datos de prueba, y desactiva la conexión remota de root.
brew install mysql
brew services start mysql
mysql_secure_installationsudo apt update
sudo apt install mysql-server
sudo systemctl status mysql
# Ajustes de seguridad
sudo mysql_secure_installation
# conectarse como root (auth_socket)
sudo mysqlVerificar la instalación
Compruebe con los comandos siguientes que el servidor funciona y que puede conectarse. El comando mysql -u root -p le pide la contraseña; si con la contraseña correcta ve el prompt mysql>, la instalación está completa. No olvide poner punto y coma al final de los comandos SQL dentro del servidor.
mysql --version
mysql -u root -pSELECT VERSION();
SHOW DATABASES;
EXIT;Crear una base de datos MySQL
Al crear una base de datos nueva, elegir bien el juego de caracteres desde el principio evita problemas futuros con los caracteres especiales y los emojis. En las versiones actuales de MySQL el juego de caracteres por defecto ya es utf8mb4; aun así, es buena costumbre indicarlo explícitamente en el comando. Si desea reglas de ordenación turcas, puede usar la colación utf8mb4_tr_0900_ai_ci.
A continuación creemos la primera tabla. El ejemplo es una tabla sencilla de productos: para el precio se usa el tipo DECIMAL en lugar de coma flotante, porque en los importes de dinero no se admiten errores de redondeo.
- PRIMARY KEY identifica de forma única cada fila; AUTO_INCREMENT asigna el número automáticamente.
- El motor de almacenamiento InnoDB ofrece soporte de transacciones y claves foráneas, y es el predeterminado en las versiones actuales.
- Añadir índices a las columnas por las que busca con frecuencia acelera las consultas; pero cada índice innecesario ralentiza las operaciones de escritura.
CREATE DATABASE magaza
CHARACTER SET utf8mb4
COLLATE utf8mb4_tr_0900_ai_ci;
USE magaza;
CREATE TABLE urunler (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
ad VARCHAR(150) NOT NULL,
fiyat DECIMAL(10,2) NOT NULL,
stok INT NOT NULL DEFAULT 0,
olusturma DATETIME DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB;
INSERT INTO urunler (ad, fiyat, stok) VALUES ('Producto de ejemplo', 10.00, 25);
SELECT * FROM urunler;Crear usuario y permisos en MySQL
No conecte nunca su aplicación a la base de datos con el usuario root. Cree para cada aplicación un usuario independiente que acceda solo a su propia base de datos y que solo pueda realizar las operaciones que necesita. Así, aunque surja una vulnerabilidad, el daño queda limitado a esa base de datos.
La parte «localhost» junto al nombre de usuario determina desde dónde se acepta la conexión. Si la aplicación y la base de datos están en el mismo servidor, basta con localhost; si necesita una conexión remota, permita solo una dirección IP concreta y evite abrirla a todo el mundo con «%».
CREATE USER 'magaza_app'@'localhost' IDENTIFIED BY 'Guclu-Bir-Sifre-2!';
GRANT SELECT, INSERT, UPDATE, DELETE ON magaza.* TO 'magaza_app'@'localhost';
SHOW GRANTS FOR 'magaza_app'@'localhost';
-- Cambiar la contraseña y eliminar un usuario
ALTER USER 'magaza_app'@'localhost' IDENTIFIED BY 'Yeni-Sifre-3!';
DROP USER 'magaza_app'@'localhost';Gestión visual con MySQL Workbench
Si prefiere una interfaz gráfica a la línea de comandos, MySQL Workbench es la herramienta de escritorio oficial de MySQL. En la pantalla de conexiones pulse el icono más e introduzca la dirección del servidor (127.0.0.1), el puerto (3306) y el nombre de usuario; el botón Test Connection verifica la configuración.
En Workbench puede diseñar tablas visualmente, escribir consultas y ver los resultados en forma de tabla, y exportar e importar datos desde el menú Server. En la pantalla de consultas, Ctrl+Enter ejecuta el comando donde está el cursor.
Copia de seguridad y restauración
La pantalla de exportación de Workbench utiliza por detrás la herramienta mysqldump. Puede hacer lo mismo desde el terminal; para hacer copias de seguridad regulares y automáticas, este comando puede añadirse a una tarea programada. Mientras no pruebe de vez en cuando que la copia se puede restaurar, no puede considerar que tiene una copia de seguridad.
# Yedek al
mysqldump -u root -p magaza > magaza.sql
# Restaurar
mysql -u root -p magaza < magaza.sqlErrores de conexión frecuentes y soluciones
La mayoría de los problemas que aparecen en MySQL tienen que ver con la conexión, la autenticación y la política de contraseñas. El número de error es la forma más rápida de entender la causa.
- ERROR 1045 Access denied: el nombre de usuario, la contraseña o la dirección de conexión (localhost / 127.0.0.1) son incorrectos. Compruebe para qué dirección está definido el usuario con SELECT user, host FROM mysql.user;.
- ERROR 2002 / 2003 Can't connect: el servidor no está en marcha. En Windows inicie el servicio MySQL desde la pantalla de Servicios; en Linux use sudo systemctl start mysql.
- ERROR 1819, política de contraseñas: el componente validate_password rechaza una contraseña débil; elija una más larga que incluya mayúsculas, números y caracteres especiales.
- Puerto 3306 en uso: en el equipo hay otra base de datos en funcionamiento, como XAMPP; detenga una de ellas o cambie uno de los puertos.
- Error de autenticación con un cliente antiguo: el MySQL actual usa por defecto el método caching_sha2_password; actualice la biblioteca cliente.
Conectar MySQL a la aplicación
En proyectos PHP, la forma recomendada de conectarse a MySQL es usar PDO con consultas preparadas (prepared statements); este método ofrece una protección básica contra la inyección SQL. En lugar de escribir los datos de conexión en el código, guárdelos en un archivo de entorno que no se suba a Git. Para gestionar las dependencias de PHP, consulte nuestra guía de instalación de Composer.
Si está pensando en otra base de datos, puede comparar ambos sistemas con nuestro artículo de instalación de PostgreSQL. Para más contenidos, consulte la página de la etiqueta bases de datos.
El diseño de la base de datos influye directamente en la velocidad de una web o de una plataforma e-commerce: unos índices incorrectos o unas consultas innecesarias hacen que la página tarde en abrirse. Medimos y eliminamos estos cuellos de botella en nuestros trabajos de velocidad y rendimiento; también en nuestros proyectos de web corporativa construimos la base de datos con esta mirada desde el principio.
<?php
$pdo = new PDO(
'mysql:host=localhost;dbname=magaza;charset=utf8mb4',
'magaza_app',
getenv('DB_SIFRE'),
[PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]
);
$sorgu = $pdo->prepare('SELECT ad, stok FROM urunler WHERE id = ?');
$sorgu->execute([1]);
print_r($sorgu->fetch());Preguntas frecuentes
01¿Cuál es la diferencia entre MySQL y MariaDB?
MariaDB es una base de datos derivada de MySQL y en gran medida compatible con ella. Los comandos SQL básicos y la mayoría de las aplicaciones funcionan igual en ambas; sin embargo, en las versiones nuevas algunas funciones y ajustes por defecto han divergido, así que use también en local la que utilice el servidor en producción.
02¿Es gratis MySQL?
MySQL Community Server es gratuito y de código abierto. Oracle también ofrece ediciones empresariales de pago con herramientas adicionales y soporte; para la mayoría de los proyectos web basta la edición comunitaria.
03He olvidado la contraseña de root, ¿qué puedo hacer?
Siga los pasos de restablecimiento de contraseña de la documentación oficial: el servidor se inicia temporalmente omitiendo el control de permisos y se establece la nueva contraseña con ALTER USER. En Ubuntu, si root usa auth_socket, puede conectarse sin contraseña con sudo mysql y hacer el cambio directamente.
Instalar MySQL con la versión LTS y ejecutar el script de seguridad, definir para la aplicación un usuario independiente con permisos limitados y hacer copias de seguridad periódicas es la base de una base de datos sólida. Si desea desarrollar para su negocio un sistema a medida, desde el diseño de la base de datos hasta la interfaz, conozca las soluciones de software a medida de Aurora Yazılım o póngase en contacto con nosotros.


