Entrada

MySQL 馃惉 : Instalar y Configurar desde los Binarios en Windows

Instalar MySQL en Windows desde los binarios es una buena opci贸n si deseamos una instalaci贸n limpia y controlada de MySQL.

Descargar los binarios de MySQL

  • Abrimos el navegador y vamos a la p谩gina oficial de descargas de MySQL: https://dev.mysql.com/downloads/
  • En la secci贸n de MySQL Community Server, seleccionamos la versi贸n de MySQL s instalar.
  • Luego de seleccionar la versi贸n seg煤n la arquitectura de nuestro equipo:
    • Windows (x86, 64bit), ZIP archive: Este archivo contiene los binarios sin necesidad de un instalador gr谩fico.
    • Windows (x86, 32-bit), ZIP archive: Si est谩s usando una versi贸n de 32 bits de Windows.
  • Clic en Download y luego clic en No thank, just start my download para evitar registrarse y comenzar la descarga directamente.

Si prefieres, puedes ir directo a la descarga de Mysql 8.0.28 para 64 bit

descarga de los binarios descarga de los binarios

Extraer el contenido

  • Una vez descargado el archivo, extraemos su contenido en una carpeta, por ejemplo: C:\mysql.

Configurar MySQL

Crear la carpeta de datos

  • En la carpeta donde hemos extra铆do los binarios de MySQL, creamos una carpeta llamada data.
  • La ruta completa ser铆a algo as铆 como C:\mysql\data.
  • Esta carpeta almacenar谩 las bases de datos de MySQL.

Crear el archivo de configuraci贸n

  • En la misma carpeta donde se han extra铆do los binarios de MySQL (C:\mysql), creamos un archivo my.ini.
  • El archivo de opciones define la configuraci贸n que se utilizar谩 para iniciar el servidor de MySQL.

A continuaci贸n, veamos un ejemplo b谩sico de configuraci贸n que podemos usar:

1
2
3
4
5
6
7
8
9
10
[mysqld]
# Configuraci贸n de la base de datos
basedir=C:/mysql
datadir=C:/mysql/data
port=3306

# Otras opciones recomendadas
default_storage_engine=INNODB
max_connections=200
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

Ten en cuenta que las barras invertidas \ en Windows deben ser reemplazadas por barras diagonales / en la configuraci贸n de MySQL, o debes escaparlas (por ejemplo: C:\\mysql).

Inicializar la base de datos

  • Abrimos un S铆mbolo del sistema (cmd) como administrador.
  • Navegamos hasta la carpeta de los binarios con el comando cd. Ejemplo:
1
cd C:\mysql\bin
  • Ahora, ejecutamos el siguiente comando para inicializar el directorio de datos de MySQL:
1
mysqld --initialize --console
  • El comando anterior realiza lo siguiente:
    • Inicializa el directorio de datos de MySQL y crea las tablas del sistema.
    • Instala el esquema sys.
    • Crea una cuenta administrativa.
  • Implementaci贸n segura por defecto:
    • Se crea una sola cuenta administrativa root@localhost con una contrase帽a generada aleatoriamente, que se marca como caducada.
    • No se crean cuentas de usuarios an贸nimos.
    • No se crea ninguna base de datos como test accesible para todos los usuarios.

Observamos que en la consola que nos muestra el password generado aleatoriamente:

> bin\mysqld --initialize --console
2024-11-08T16:35:45.951151Z 0 [System] [MY-015017] [Server] MySQL Server Initialization - start.
2024-11-08T16:35:45.966750Z 0 [Warning] [MY-010915] [Server] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
2024-11-08T16:35:46.013551Z 0 [System] [MY-013169] [Server] C:\mysql\bin\mysqld.exe (mysqld 8.4.3) initializing of server in progress as process 4644
2024-11-08T16:35:46.153954Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2024-11-08T16:35:53.068762Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2024-11-08T16:36:11.759321Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: /-H_NXhO1h.#

Agregar al path

  • Para ejecutar despu茅s el programa cliente de mysql desde cualquier ubicaci贸n, debemos incluir el directorio C:\mysql\bin a la variable PATH.
  • Abrimos la CMD normal (para que sea disponible a nivel de usuario) o como administrador (para que sea disponible a nivel de sistema):
1
setx PATH "%path%;"C:\mysql\bin\

Configurar MySQL como servicio

Nos posicionamos dentro del directorio de instalaci贸n e ingresamos a la carpeta bin y ejecutamos los siguientes comandos:

  • El siguiente comando es para asegurarnos de no tener ninguna instancia del servidor corriendo actualmente:
1
mysqladmin -u root shutdown
  • El siguiente comando registra MySQL como servicio (ejecutar con privilegios de administrador):
1
mysqld --install "mysql"

Ahora podemos iniciar o detener el servicio desde la l铆nea de comandos. Para ello podemos abrir una nueva CMD como administrador y realizar alguna de las siguientes operaciones:

  1. Iniciar el servicio con el comando:
1
net start mysql
  1. Detener el servicio
1
net stop mysql

La herramienta net se utiliza para administrar redes y servicios.

  1. Consultar el estado del servicio
1
sc qc mysql

Lo anterior nos mosntra铆a un mensaje similar al siguiente:

> sc qc mysql
[SC] QueryServiceConfig CORRECTO

NOMBRE_SERVICIO: mysql
        TIPO               : 10  WIN32_OWN_PROCESS
        TIPO_INICIO        : 2   AUTO_START
        CONTROL_ERROR      : 1   NORMAL
        NOMBRE_RUTA_BINARIO: C:\mysql\bin\mysqld mysql
        GRUPO_ORDEN_CARGA  :
        ETIQUETA           : 0
        NOMBRE_MOSTRAR     : mysql
        DEPENDENCIAS       :
        NOMBRE_INICIO_SERVICIO: LocalSystem
  1. Eliminar el servicio
1
sc delete mysql

La herramienta sc es m谩s avanzada y proporciona un control m谩s detallado sobre los servicios de windows.

Establecer una nueva contrase帽a

Una vez ya podemos acceder a nuestro servidor, lo primero que debemos hacer es cambiar la contrase帽a generada al momento de inicializar las bases de datos del servidor. Para eso tenemos el comando ALTER USER que fue introducido en versiones de MySQL 5.7 en adelante.

  • Ejecutamos el siguiente comando para cambiar la contrase帽a del usuario conectado (root):
1
ALTER USER user() IDENTIFIED BY '<new-password>';

Este ser铆a un ejemplo, que explica de forma ordenada de c贸mo implementar una instalaci贸n limpia de MySQL desde los binarios en Windows y configurar las opciones de inicio del servidor. 隆Espero que te sirva!

Mi lema es

Esta entrada est谩 licenciada bajo CC BY 4.0 por el autor.