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/23 14:29] 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.+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>
  
 +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 sistema preguntará la **contraseña del usuario ''root'' de mysql**.+Instalar desde el gestor de paquetes de la distribuciónEl proceso por defecto instala MariaDB:
  
-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''.+  # 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==== ====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 30: 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 97: 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 118: 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. 
 + 
 +==== 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 ===== ===== Desinstalar =====
-Para desinstalar **correctamente** ver los pasos en [[.MySQL Server Desinstalar]].+Para desinstalar **correctamente** ver los pasos en [[.MySQL Server Desinstalar]], o seguir la documentación oficial.
  
 ===== Notas ===== ===== Notas =====
-====Debian9 MySQL====+====Windows I/O Error en Equipos de 64-bit====
  
-<note info>:!: **Para**Debian 9 10.</note>+<note info>:!: Para: Equipos con Windows 8 en adelante 64-bit, en particular notebooks, cuando instalan MySQL 5.5 anterior.</note>
  
-1.- Crear el siguiente archivo de repositorio:\\ ''nano /etc/apt/sources.list.d/debian-unstable.list''+Este caso afecta particularmente a clientes como Daos.
  
-2.- Colocar en el archivo la siguiente línea:\\ ''deb http://deb.debian.org/debian/ unstable main''+FIXME Pendiente
  
-3.- Guardar y salir.+====root tiene contraseña====
  
-4.- Crear el siguiente archivo:\\ ''nano /etc/apt/preferences.d/unstable''+**Síntoma**Windows MySQL Setup Wizard dice que root tiene contraseña
  
-Con el siguiente contenido:+<note info>:!: Para: Equipos con Windows que ya tenían una instalación previa de MySQL Server.</note>
  
-<code> +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.
-Package: mysql-server +
-Pin: release a=unstable +
-Pin-Priority: 100+
  
-</code>+Para solucionar este problema es necesario seguir los siguientes pasos **en orden**:
  
-5.- Guardar y salir.+  - 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.
  
-6.- Actualizar los repositorios.+Luego de esto, proceder a la instalación de servidor de MySQL desde cero.
  
-  apt-get update+====Usuario local login a root====
  
-Luego de esto [[#Linux|continuar con la instalación y poner ojo a las instrucciones]].+<note info>:!: Para: Linux con MySQL 5.7 en adelante.</note>
  
-====Windows I/O Error en Equipos de 64-bit====+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:
  
-<note info>:!: Para: Equipos con Windows 8 en adelante 64-bit, en particular notebooks, cuando instalan MySQL 5.5 o anterior.</note>+  * crear un nuevo superusuario con acceso vía protocolo TCP. 
 +  * cambiar la autenticación del usuario ''root''.
  
-Este caso afecta particularmente clientes como Daos.+**a) Crear un nuevo superusuario**
  
-FIXME Pendiente+:!: Esta estrategia se seguirá empezando con los servidores Linux que lance Helpcom desde Marzo de 2020 en adelante.
  
-====Windows MySQL Setup Wizard dice que root tiene contraseña====+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:
  
-<note info>:!: Para: Equipos con Windows que ya tenían una instalación previa de MySQL Server.</note>+  sh /usr/local/etc/helpcom/mysql-permisosroot0.sql
  
-FIXME Pendiente+El script pedirá una contraseña para el nuevo root y creará el usuario.
  
-====Usuario local login a root====+La creación debiera ser equivalente al procedimiento SQL siguiente:
  
-<note info>:!: Para: Linux con MySQL 5.7 en adelante.</note>+<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;
  
-Desde MySQL 5.7, 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 a MySQL; para recuperar el acceso desde el usuario ''administrador'', entrar a la consola de MySQL y ejecutar los siguientes comandos:+</code>
  
-  alter user root@'localhost' identified with mysql_native_password by 'password'; +**b) Cambiar el acceso para el usuario root de MySQL**
-  flush privileges;+
  
-(Cambiar "''password''") por la contraseña para el ''root'' de MySQL.+Entrar a la consola de MySQL como root.
  
-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**:+  # 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**: 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.
  
  
Línea 190: Línea 251:
 <note info>:!: Para: Servidores MySQL donde el cliente puede conectarse con un ''mysqldump'' o un MySQL ODBC de una versión diferente.</note> <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 nueos, incluyendo conectores como los conectores de Eclipse o DBeaver que usan un conector más nueo que el ODBC 5.1. +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: 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:
f1/mysql_server.1548253757.txt.gz · Última modificación: 2019/01/23 14:29 por lmachuca
CC Attribution-Noncommercial-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0