¡Esta es una revisión vieja del documento!
Tabla de Contenidos
Instalar 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:
- Separar el binario (
ibdata
) de la BDD en archivos de modo que la recuperación y respaldo sea más fácil. - 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.
Linux
Para habilitar un servidor de MySQL = 5.5, ver Legacy.
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.
Instalar desde el gestor de paquetes de la distribución. El proceso por defecto instala MariaDB:
# Debian 9 o 10 con la 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
En Debian 9 si se desea instalar MySQL 5.7:
# Debian 9 o posterior con paquetería de Helpcom --> MariaDB apt install -t unstable helpcom-servidor-mysql # Si reporta ambigüedades: apt install -t unstable helpcom-servidor-mysql mysql-server mysql-client
# Ubuntu 16.04 o posterior --> MySQL 5.7 apt install mysql-server helpcom-servidor-mysql
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.
En aquellos casos en los que el sistema no pide contraseña, es porque se instala la cuenta de root de MySQL con acceso al root de shell vía socket. Es decir, es necesario ser root
para entrar al root de MySQL. La sección de Permisos más adelante detalla cómo cambiar este comportamiento.
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/
. Un archivo de configuración /etc/mysql/my.helpcom.cnf
contiene configuraciones específicas de Helpcom que se deben editar en caso que sea necesario.
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.
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.
service mysql stop
2.- Editar my.cnf
para traer las configuraciones bases de servidor para Helpcom. La forma sencilla de hacer esto es:
Primero, verificar que existe el siguiente archivo:
nano /etc/mysql/mysql.conf.d/mysqld-helpcom.conf
Esto debe mostrar algunas configuraciones base para el servidor. Podemos aprovechar de configurar lo que necesitemos.
Tras guardar y salir debemos asegurarnos que esta configuración es incluida por el sistema de MySQL:
echo "!include /etc/mysql/my.helpcom.cnf " >> /etc/mysql/my.cnf
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”.
Windows
Para instalar se usa uno de los instaladores de MySQL Server, “Essentials” o “Community” dependiendo de la versión de MySQL, o el instalador de MariaDB. Ambos instaladores están en el SFTP de Helpcom.
Se escogen en general las siguientes opciones de instalación:
- Instalador → Tipo de instalación: Completa.
- Instalador → Configurar el Servicio Ahora.
Una vez que el servidor esté instalado, el software ofrece la opción de configurarlo vía la herramienta de configuración del servicio (“Service Wizard”). Opciones de configuración:
- Tipo de servicio: “Configuración Estándar”.
- Habilitar la casilla
[✔] Iniciar Servicio con Windows
. - Nombre del servicio:
MySQL5
viene por defecto, se puede escoger otro nombre si por cualquier razón es necesario instalar más de un servicio MySQL en un servidor (por ejemplo, dos o tres versiones de MySQL diferentes). - Habilitar la casilla
[✔] Agregar ruta de ejecutables del servicio al %PATH%
. - Deshabilitar la casilla
[ ] Habilitar acceso anónimo
. - Contraseña de root del servicio.
- Confirmar la contraseña de root del servicio.
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]
:
[mysqld] # Agregar los siguientes campos: # Permitir conexión desde fuera: 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
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
Completados estos pasos y ya andando el servicio de MySQL lo que queda es 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
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
Este caso afecta particularmente a clientes como Daos.
Pendiente
root tiene contraseña
Síntoma: Windows MySQL Setup Wizard dice que root tiene contraseña
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 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
Desde MySQL 5.7 (o MariaDB 10.1), el acceso a root
por defecto es 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:
# MySQL 5.7 alter user root@'localhost' identified with 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.
COLLATION por defecto desde clientes nuevos
mysqldump
o un MySQL ODBC de una versión diferente.
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.