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 [2017/12/27 13:46] 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.+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 =====
  
-Instalar desde el gestor de paquetes de la distribución. Por ejemplo en Debian:+**Descarga Oficial**
  
-  apt-get install mysql-server+  * desde el gestor de paquetes de la distribución
  
 +<note>El tutorial actual considera la instalación del servidor //MariaDB// 10.2 o posterior para Debian 9 en adelante.
  
-El sistema preguntará la **contraseña del usuario ''root'' de mysql**.+Para habilitar un servidor de MySQL = 5.5, ver [[MySQL Server Legacy]]. 
 +</note>
  
-El archivo de configuración resultante es por defecto ''/etc/mysql/my.cnf''el árbol de la base de datos está guardado por defecto en ''/var/lib/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. 
 + 
 +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''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==== 
 + 
 +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. 
 + 
 +    service mysql stop 
 + 
 +2.- Ir a la carpeta de configuración de MySQL y copiar el archivo ''my.helpcom.cnf'' a la carpeta adecuada. Por ejemplo:  
 + 
 +<code bash> 
 +cd /etc/mysql 
 +cp my.helpcom.cnf ./maradb.conf.d/  
 +</code> 
 + 
 +3.- Editar el archivo resultante con las configuraciones que deseamos. 
 + 
 +<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: 
 + 
 +    service mysql start 
 + 
 +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 36: Línea 113:
  
 El archivo de configuración resultante es por defecto ''%PROGRAMFILES%\MySQL Server\(versión)\my.ini'' y el árbol de la base de datos está guardado por defecto en ''%PROGRAMDATA%\MySQL Server''. El archivo de configuración resultante es por defecto ''%PROGRAMFILES%\MySQL Server\(versión)\my.ini'' y el árbol de la base de datos está guardado por defecto en ''%PROGRAMDATA%\MySQL Server''.
 +
 +
 +====Postinstalación====
 +Los siguientes elementos deben configurarse en el servidor **antes** de crear las primeras bases de datos e ingresar datos:
 +
 +1.- Detener el servicio.
 +
 +    Ejecutar → services.msc
 +    MySQL → menú contextual → Detener
 +
 +2.- Editar ''my.ini'' o el archivo de configuración equivalente (depende de la versión de MySQL; revisar las documentaciones oficiales correspondientes) y agregar las siguientes directivas a la sección ''[mysqld]'':
 +
 +<file my.cnf.agregar>
 +[mysqld]
 +# Agregar los siguientes campos:
 +
 +# Permitir conexión desde fuera:
 +# (chequear también Firewall de Windows)
 +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 = normal
 +
 +</file>
 +
 +:!: Poder guardar los cambios en el archivo puede requerir iniciar el editor de texto o el explorador con privilegios de Administrador de Sistema.
 +
 +3.- Reiniciar el servicio:
 +
 +    Ejecutar → services.msc
 +    MySQL → menú contextual → Iniciar
 +
 +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".
  
 ===== Configuración Inicial ===== ===== Configuración Inicial =====
  
-**[[f1:MySQL Server 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. 
 + 
 +==== Carga de Credenciales ==== 
 + 
 +La carga de credenciales en Windows debe hacerse manualmente, ya que Windows no tiene una gestión de paquetes que lo permita. 
 + 
 + 
 +===== Desinstalar ===== 
 +Para desinstalar **correctamente** ver los pasos en [[.MySQL Server Desinstalar]], o seguir la documentación oficial. 
 + 
 +===== Notas ===== 
 +====Windows I/O Error en Equipos de 64-bit==== 
 + 
 +<note info>:!: Para: Equipos con Windows 8 en adelante 64-bit, en particular notebooks, cuando instalan MySQL 5.5 o anterior.</note> 
 + 
 +Este caso afecta particularmente a clientes como Daos. 
 + 
 +FIXME Pendiente 
 + 
 +====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> 
 + 
 +Si el equipo ya tenía una instalación de MySQL Server previa, tanto el servicio de Windows como el binario de la base de datos guardan información de la cuenta y permisos anteriores de ''root@localhost'', con los cuales no es posible para el instalador generar los permisos o usuarios nuevos. 
 + 
 +Para solucionar este problema es necesario seguir los siguientes pasos **en orden**: 
 + 
 +  - Detener el servicio de MySQL. 
 +  - Desinstalar MySQL server [[mysql server desinstalar|como se indica en la página de desinstalación]], **incluyendo** borrar los archivos de data. 
 +  - Borrar el directorio de MySQL Server en //Program Files//. 
 +  - Verificar manualmente que el servicio de MySQL está eliminado. 
 +  - Reiniciar el equipo. 
 + 
 +Luego de esto, proceder a la instalación de servidor de MySQL desde cero. 
 + 
 +====Usuario local login a root==== 
 + 
 +<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'', hay dos estrategias: 
 + 
 +  * crear un nuevo superusuario con acceso vía protocolo TCP. 
 +  * cambiar la autenticación del usuario ''root''
 + 
 +**a) Crear un nuevo superusuario** 
 + 
 +:!: 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 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**: 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. 
 + 
 + 
 +==== COLLATION por defecto desde clientes nuevos ==== 
 + 
 +<note info>:!: Para: Servidores MySQL donde el cliente puede conectarse con un ''mysqldump'' o un MySQL ODBC de una versión diferente.</note> 
 + 
 +En MySQL 5.5, algunas tablas pueden insertar o leer información en el ''COLLATION'' incorrecto cuando uno se conecta desde clientes de MySQL más nuevos, incluyendo conectores como los conectores de Eclipse o DBeaver que usan un conector más nuevo que el ODBC 5.1.  
 + 
 +Para asegurarse que las tablas se generan en el sistema con el COLLATION correcto por defecto, es necesario editar ''my.cnf'' y agregar a la sección ''[mysqld]'' una de las dos siguientes opciones: 
 + 
 +  collation-server = utf8_general_ci 
 +  collation-server = latin1_general_ci 
 + 
 +Cuál collation por defecto debe usarse depende del caso a caso; en general para Crux y Alerce debe usarse el ''utf8'', para servidores de **producción de Facturación Electrónica** debe usarse el ''latin1'', y para todo lo demás se puede escoger cualquiera mientras se sea consecuente entre clientes y servidores.
  
  
  
-{{tag>f1 mysql}}+{{tag>f1 mysql instalación}}
  
  
f1/mysql_server.1514382403.txt.gz · Última modificación: 2017/12/27 13:46 por lmachuca
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0