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/07/31 16:33] 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 tutorial actual considera la instalación del servidor //MariaDB// 10.2 o posterior para Debian 9 en adelante. \\ +**Descarga Oficial**:  
-Para habilitar un servidor de MySQL = 5.5, ver [[Instalación Servidor/Legacy]].+ 
 +  * 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. 
 + 
 +Para habilitar un servidor de MySQL = 5.5, ver [[MySQL Server Legacy]].
 </note> </note>
  
-Se asume aquí que se parte desde [[:Instalación Linux Servidor]] y que se ha completado la instalación y el primer inicio, incluyendo tener activado el repositorio de Helpcom.+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. Por ejemplo en Debian:+Instalar desde el gestor de paquetes de la distribución. El proceso por defecto instala MariaDB:
  
-  # Debian 9 o posterior con paquetería de Helpcom+  # Debian 9 en adelante paquetería base de Helpcom
   apt install helpcom-servidor-mysql   apt install helpcom-servidor-mysql
-  # Ubuntu 16.04 o posterior --> MySQL 5.7+  # 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   apt install mysql-server helpcom-servidor-mysql
 +  
 +  # Ubuntu 20.04 en adelante
 +  apt install helpcom-servidor-mysql
  
-(Tomar nota en los mensajes de instalación que la versión que se instala corresponda a la que necesitamos)+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 sistema puede pedir, pero no necesariamente, la **contraseña del usuario ''root'' de mysql**. Tomar nota en caso que se pida o no y qué valor se da. +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.
- +
- +
-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''.+
  
 ====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 32: Línea 53:
     service mysql stop     service mysql stop
  
-2.- Editar ''my.cnf'' para traer las configuraciones bases de servidor para HelpcomLa forma sencilla de hacer esto es:+2.- Ir a la carpeta de configuración de MySQL y copiar el archivo ''my.helpcom.cnf'' a la carpeta adecuadaPor ejemplo
  
-Primero, verificar que existe el siguiente archivo:+<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> <code bash>
-cat /etc/mysql/mysql.conf.d/mysqld-helpcom.conf+nano mariadb.conf.d/my.helpcom.cnf
 </code> </code>
  
-Esto debe mostrar algunas configuraciones base para el servidor.+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:
Línea 49: Línea 76:
 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 89: 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 110: 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:\\ ''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 +
- +
-2.- Guardar y salir. +
- +
-3.- 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 154: 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 174: 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.1564590826.txt.gz · Última modificación: 2019/07/31 16:33 por lmachuca
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0