Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
f1:mysql_server [2019/01/30 01:12] lmachucaf1:mysql_server [2023/10/12 12:47] (actual) lmachuca
Línea 1: Línea 1:
-====== Instalar MySQL Server ======+====== Instalación Servicio MySQL ======
  
 Proceso de instalación de MySQL Server. Obviamente requieren tener en el equipo el permiso para instalar software y haber seguido los pasos en la instalación de servidor base para configurar el gestor de paquetes. Proceso de instalación de MySQL Server. Obviamente requieren tener en el equipo el permiso para instalar software y haber seguido los pasos en la instalación de servidor base para configurar el gestor de paquetes.
 +
 +===== Resumen =====
 +
 +Los servicios de MySQL para Helpcom se instalan usando por defecto el motor **MariaDB**, que es la versión "community" de MySQL con licencia para poder distribuirla a los clientes. 
 +
 +Para ser usable con Helpcom, se debe ajustar el servicio de BDD con ciertas configuraciones. Las más importantes incluyen:
 +
 +  * Optimizar el tiempo de commit y escritura al disco duro.
 +  * Abrir el puerto a la red local, de modo de poder conectarnos desde las aplicaciones cliente.
 +  * Optimizar algunos recursos como memoria o canidad de conexiones disponibles, para el uso local.
 +
 +La paquetería de Helpcom incluye un archivo de configuración que ve la mayoría de estas variables.
  
 ===== Linux ===== ===== Linux =====
  
-<note warning>El servidor de MySQL por defecto en **Debian 9** es **MariaDB 10.1**. Para habilitar MySQL Server, seguir los pasos en la sección [[#Debian9 MySQL]] __antes__ de continuar con esta sección.</note>+**Descarga Oficial**
  
-Instalar desde el gestor de paquetes de la distribución. Por ejemplo en Debian:+  * desde el gestor de paquetes de la distribución
  
-  # Debian 7 u 8  --MySQL 5.+<note>El tutorial actual considera la instalación del servidor //MariaDB// 10.2 o posterior para Debian 9 en adelante.
-  apt-get install mysql-server +
-  # Debian 9 con las notas arriba  --> MySQL 5.7 +
-  apt-get install -t unstable mysql-server +
-  # Ubuntu 16.04 o posterior --> MySQL 5.+
-  apt-get install mysql-server +
  
-(Tomar nota en los mensajes de instalación que la versión que se instala corresponda a la que necesitamos)+Para habilitar un servidor de MySQL = 5.5, ver [[MySQL Server Legacy]]. 
 +</note>
  
-El sistema preguntará la **contraseña del usuario ''root'' de mysql**.+Se asume aquí que se parte desde [[:Instalación Linux Servidor]] y que se ha completado la instalación, posinstalación y primer inicio, incluyendo tener activado el repositorio de Helpcom.
  
-El archivo de configuración resultante es por defecto ''/etc/mysql/my.cnf'', y habrá un árbol de directorios con archivos de configuración en ''/etc/mysql/mysql.conf.d/''. El árbol de la base de datos está guardado por defecto en ''/var/lib/mysql''.+Instalar desde el gestor de paquetes de la distribución. El proceso por defecto instala MariaDB: 
 + 
 +  # Debian 9 en adelante paquetería base de Helpcom 
 +  apt install helpcom-servidor-mysql 
 +  # Si se queja de ambigüedades, se puede usar: 
 +  apt install helpcom-servidor-base mariadb-server mariadb-client 
 +   
 +  # Ubuntu 16.04 a 18.04 --> MySQL 5.7 
 +  apt install mysql-server helpcom-servidor-mysql 
 +   
 +  # Ubuntu 20.04 en adelante 
 +  apt install helpcom-servidor-mysql 
 + 
 +El archivo de configuración resultante es por defecto ''/etc/mysql/my.cnf'', y habrá un árbol de directorios con archivos de configuración en ''/etc/mysql/mariadb.conf.d/'' (MariaDB 10.3 en adelante) o ''/etc/mysql/mysql.conf.d/'' (MySQL; MariaDB hasta 10.2). Un archivo de configuración ''/etc/mysql/my.helpcom.cnf'' de prueba se agrega a la carpeta base que puede copiarse al destino decuado y modificarse. 
 + 
 +El árbol de la base de datos está guardado por defecto en ''/var/lib/mysql''. Ante cualquier duda de cómo configurar los archivos necesarios que esta guía no resuelva, **leer la documentación oficial** de MariaDB / MySQL.
  
 ====Postinstalación==== ====Postinstalación====
-Los siguientes elementos deben configurarse en el servidor **antes** de crear las primeras bases de datos e ingresar datos:+ 
 +Los siguientes elementos deben configurarse en el servidor **antes** de crear las primeras bases de datos e ingresar datos. Como ''root'':
  
 1.- Detener el servicio. 1.- Detener el servicio.
Línea 29: Línea 53:
     service mysql stop     service mysql stop
  
-2.- Editar ''my.cnf'' o el archivo de configuración equivalente (depende de la versión de Debian y de MySQL; revisar las documentaciones oficiales correspondientes) y agregar las siguientes directivas a la sección ''[mysqld]'':+2.- Ir a la carpeta de configuración de MySQL y copiar el archivo ''my.helpcom.cnf'' a la carpeta adecuada. Por ejemplo
  
-<file my.cnf.agregar> +<code bash> 
-[mysqld] +cd /etc/mysql 
-# Agregar los siguientes campos:+cp my.helpcom.cnf ./maradb.conf.d/  
 +</code>
  
-# Permitir conexión desde fuera: +3.Editar el archivo resultante con las configuraciones que deseamos.
-bind-address = * +
-# Puerto de conexión: +
-port = 3306 +
-# Modelo de almacenamiento de binarios +
-innodb_file_per_table = 1 +
-# Modelo de sincronización en disco +
-innodb_flush_method = O_DIRECT+
  
-</file>+<code bash> 
 +nano mariadb.conf.d/my.helpcom.cnf 
 +</code> 
 + 
 +Esto debe mostrar algunas configuraciones base para el servidor. Podemos aprovechar de configurar lo que necesitemos. 
 + 
 +Guardar y salir.
  
 3.- Reiniciar el servicio: 3.- Reiniciar el servicio:
  
     service mysql start     service mysql start
- 
-4.- Agregar el siguiente paquete a la instalación: 
- 
-  apt-get install mysql-utilities 
  
 A este punto, antes de continuar, conviene chequear las **[[#Notas]]** para ver si alguna de ellas aplica a la configuración actual. En particular para MySQL 5.7 es necesario chequear la sección "Usuario no puede hacer login a root". A este punto, antes de continuar, conviene chequear las **[[#Notas]]** para ver si alguna de ellas aplica a la configuración actual. En particular para MySQL 5.7 es necesario chequear la sección "Usuario no puede hacer login a root".
  
 +==== Carga de Credenciales ====
 +Si se ha seguido la paquetería de Helpcom, es bastante fácil cargar las credenciales por defecto (los usuarios "helpcom_db" y "helpcom-admin"). Para esto, aún como root:
 +
 +<code bash>
 +mysql < /usr/local/etc/helpcom/mysql-permisos0.sql
 +</code>
  
 ===== Windows ===== ===== Windows =====
 +
 +<note warning> Configuración no recomendada. Windows no es bueno para servidores, ni menos cuando al mismo tiempo se usa como caja. Es mejor hacer una [[:instalación linux servidor]].</note>
 +
 +**Descarga Oficial**:
 +
 +  * [[https://mariadb.org/mariadb/all-releases/#10-6|MariaDB Server All Releases]] (apunta a 10.6 pero se puede escoger versiones anteriores)
 +    * Escoger "Windows", "MSI Package".
 +
  
 [{{ :f1:mysqlserverwindows-1.png?nolink&400 |Entrada del Instalador de MySQL Server}}] [{{ :f1:mysqlserverwindows-1.png?nolink&400 |Entrada del Instalador de MySQL Server}}]
  
-Para instalar se usa uno de los instaladores de MySQL Server, "Essentials" o "Community" dependiendo de la versión de MySQL.+Para instalar se usa uno de los instaladores de MariaDB Server.
  
 Se escogen en general las siguientes opciones de instalación: Se escogen en general las siguientes opciones de instalación:
Línea 96: Línea 130:
  
 # Permitir conexión desde fuera: # Permitir conexión desde fuera:
 +# (chequear también Firewall de Windows)
 bind-address = * bind-address = *
 # Puerto de conexión: # Puerto de conexión:
Línea 117: Línea 152:
 ===== Configuración Inicial ===== ===== Configuración Inicial =====
  
-Completados estos pasos y ya andando el servicio de MySQL lo que queda es **[[f1:MySQL Server Permisos|establecer los usuarios y permisos]]**.+Completados estos pasos y ya andando el servicio de MySQL lo que queda es **[[f1:MySQL Server Permisos|establecer los usuarios y permisos]]**. Esto permite: 
  
 +  - Configurar el acceso para el usuario ''root''.
 +  - Abrir el puerto para que otros equipos cliente puedan conectarse.
 +  - Crear los usuarios y privilegios base de Helpcom.
  
-===== Desinstalar ===== +==== Carga de Credenciales ====
-Para desinstalar **correctamente** ver los pasos en [[.MySQL Server Desinstalar]].+
  
-===== Notas ===== +La carga de credenciales en Windows debe hacerse manualmente, ya que Windows no tiene una gestión de paquetes que lo permita.
-====Debian9 MySQL====+
  
-<note info>:!: **Para**: Debian 9 o 10.</note> 
  
-Desde Debian 9 el motor de base de datos por defecto es MariaDB, el cual toma el nombre de paquete de ''mysql-server''. Por esto, para poder instalar MySQL Server en vez de MariaDB es necesario ajustar el gestor de paquetes para que encuentre la versión de MySQL que queremos. Obviamente, ignorar estos pasos si queremos MariaDB en vez de MySQL. +===== Desinstalar ===== 
- +Para desinstalar **correctamente** ver los pasos en [[.MySQL Server Desinstalar]], o seguir la documentación oficial.
-A menos que se indique lo contrario, los pasos aquí indicados se llevan a cabo como ''root''+
- +
-1.- Crear el siguiente archivo de repositorio:\\ ''nano /etc/apt/sources.list.d/debian-unstable.list'' +
- +
-2.- Colocar en el archivo la siguiente línea:\\ ''deb http://deb.debian.org/debian/ unstable main'' +
- +
-3.- Guardar y salir. +
- +
-4.- Crear el siguiente archivo:\\ ''nano /etc/apt/preferences.d/unstable'' +
- +
-Con el siguiente contenido: +
- +
-<code> +
-Package: mysql-server +
-Pin: release a=unstable +
-Pin-Priority: 100 +
- +
-</code> +
- +
-:!: notar la línea en blanco al final +
- +
-5.- Guardar y salir. +
- +
-6.- Actualizar los repositorios. +
- +
-  apt-get update +
- +
-Luego de esto [[#Linux|continuar con la instalación y poner ojo a las instrucciones]].+
  
 +===== Notas =====
 ====Windows I/O Error en Equipos de 64-bit==== ====Windows I/O Error en Equipos de 64-bit====
  
Línea 167: Línea 175:
 FIXME Pendiente FIXME Pendiente
  
-====Windows MySQL Setup Wizard dice que root tiene contraseña====+====root tiene contraseña==== 
 + 
 +**Síntoma**: Windows MySQL Setup Wizard dice que root tiene contraseña
  
 <note info>:!: Para: Equipos con Windows que ya tenían una instalación previa de MySQL Server.</note> <note info>:!: Para: Equipos con Windows que ya tenían una instalación previa de MySQL Server.</note>
Línea 187: Línea 197:
 <note info>:!: Para: Linux con MySQL 5.7 en adelante.</note> <note info>:!: Para: Linux con MySQL 5.7 en adelante.</note>
  
-Desde MySQL 5.7 (o MariaDB 10.1), el acceso a ''root'' por defecto es [[https://askubuntu.com/questions/766334/cant-login-as-mysql-user-root-from-normal-user-account-in-ubuntu-16-04/801950|por medio de un socket de UNIX]], por lo cual es necesario ser usuario ''root'' en el shell para entrar al ''root'' de MySQL; para recuperar el acceso desde el usuario ''administrador'', entrar a la consola de MySQL y ejecutar los siguientes comandos:+Desde MySQL 5.7 (o MariaDB 10.1), el acceso a ''root'' por defecto es [[https://askubuntu.com/questions/766334/cant-login-as-mysql-user-root-from-normal-user-account-in-ubuntu-16-04/801950|por medio de un socket de UNIX]], por lo cual es necesario ser usuario ''root'' en el shell para entrar al ''root'' de MySQL; para recuperar el acceso desde el usuario ''administrador'', hay dos estrategias:
  
-  alter user root@'localhostidentified with mysql_native_password by 'password'+  * crear un nuevo superusuario con acceso vía protocolo TCP. 
-  flush privileges;+  * cambiar la autenticación del usuario ''root''.
  
-(Cambiar "''password''"por la contraseña para el ''root'' de MySQL.+**aCrear un nuevo superusuario**
  
-Una vez ejecutados estos pasos es posible confirmar que es posible acceder a la consola de ''root'' haciendo inicio de sesión  como ''administrador'' (por ejemplo por SSH/PuTTY) y entrando a la consola de MySQL. Observar que, en el siguiente comando, es necesario **especificar el host con -h**:+:!: Esta estrategia se seguirá empezando con los servidores Linux que lance Helpcom desde Marzo de 2020 en adelante. 
 + 
 +La paquetería de Helpcom incluye un script que crea un usuario nuevo, ''helpcom.root'' con todos los permisos desde conexión local. Para cargar el script se ejecuta como root: 
 + 
 +  sh /usr/local/etc/helpcom/mysql-permisosroot0.sql 
 + 
 +El script pedirá una contraseña para el nuevo root y creará el usuario. 
 + 
 +La creación debiera ser equivalente al procedimiento SQL siguiente: 
 + 
 +<code mysql> 
 +CREATE USER 'helpcom.root'@'localhost' IDENTIFIED BY 'password'; 
 +GRANT ALL on *.* TP 'helpcom.root'@'localhost' WITH GRANT OPTION; 
 +GRANT SUPER TO 'helpcom.root'@'localhost' WITH GRANT OPTION; 
 +FLUSH PRIVILEGES; 
 + 
 +</code> 
 + 
 +**b) Cambiar el acceso para el usuario root de MySQL** 
 + 
 +Entrar a la consola de MySQL como root. 
 + 
 +  # MySQL 5.7 
 +  ALTER USER root@'localhost' IDENTIFIED VIA mysql_native_password BY 'newpassword'; 
 +  FLUSH PRIVILEGES; 
 + 
 +  # MariaDB 
 +  UPDATE mysql.user SET password=password('newpassword'), plugin='mysql_native_password' WHERE user='root'; 
 +  FLUSH PRIVILEGES; 
 + 
 + 
 +(Cambiar "''newpassword''") por la contraseña para el ''root'' de MySQL. 
 + 
 +Una vez ejecutados estos pasos es posible confirmar que es posible acceder a la consola de ''root'' haciendo inicio de sesión  como ''administrador'' (por ejemplo por SSH/PuTTY) y entrando a la consola de MySQL. Observar que, en el siguiente comando, puede ser necesario **especificar el host con -h**:
  
   mysql -h localhost -u root -p   mysql -h localhost -u root -p
-  # Alternativamente 
   mysql -h 127.0.0.1 -u root -p   mysql -h 127.0.0.1 -u root -p
  
 :!: **Nota**: Si debido a una actualización de sistema cambia la versión de MySQL server, puede ser necesario ejecutar estos pasos nuevamente. :!: **Nota**: Si debido a una actualización de sistema cambia la versión de MySQL server, puede ser necesario ejecutar estos pasos nuevamente.
 +
 +:!: **Nota**: Al seguir este procedimiento, en Debian >= 10, los script de servicios de MySQL quedarán bloqueados  sin acceso de superusuario y por tanto no se podrá iniciar o detener MySQL con als herramientas de sistema. Consultar la wiki oficial de Debian para ver cómo reestablecer los accesos a los servicios.
  
  
f1/mysql_server.1548810753.txt.gz · Última modificación: 2019/01/30 01:12 por lmachuca
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0