En este artículo, le mostraré cómo ejecutar múltiples instancias de servidor de base de datos MariadB en la misma computadora/servidor que ejecuta el Ubuntu 20.04 Sistema operativo LTS. Entonces empecemos.
Instalación del servidor de base de datos Mariadb:
Primero, actualice el caché del repositorio del paquete APT con el siguiente comando:
$ sudo apt actualización
Puede instalar el servidor de base de datos mariadb con el siguiente comando:
$ sudo apt install mariadb-client mariadb-server
Para confirmar la instalación, presione Y y luego presiona .
Se está instalando mariadb. Puede tomar un tiempo completar.
En este punto, se debe instalar mariadb.
Detener el servicio de base de datos Mariadb:
Puedes verificar si el mysql El servicio de la base de datos se ejecuta con el siguiente comando:
$ sudo systemctl status mysql
El mysql El servicio de la base de datos debe ejecutarse de forma predeterminada como puede ver en la captura de pantalla a continuación.
Como queremos ejecutar múltiples instancias del software de servidor de base de datos Mariadb, no necesitamos el valor predeterminado mysql servicio systemd para ejecutar. Ejecutaremos las instancias de la base de datos Mariadb manualmente.
Entonces, detente el mysql Servicio de base de datos con el siguiente comando:
$ sudo systemctl detener mysql
El mysql El servicio de la base de datos debe detenerse.
$ sudo systemctl status mysql
También queremos eliminar el mysql Servicio de base de datos desde el inicio del sistema de Ubuntu 20.04 LTS. Para que no se inicie automáticamente en el arranque.
Para eliminar el mysql Servicio Desde el inicio del sistema, ejecute el siguiente comando:
$ sudo systemctl deshabilitar mysql
Configuración de mariadb para ejecutar múltiples instancias de bases de datos:
Todos los archivos de configuración de la base de datos de Mariadb están en el /etc/mysql/mariadb.confusión.d/ directorio.
Para facilitar trabajar con los archivos de configuración de MariadB, navegue a la /etc/mysql/mariadb.confusión.d/ Directorio de la siguiente manera:
$ cd/etc/mysql/mariadb.confusión.d/
No necesitamos el archivo de configuración de mariadb predeterminado Servidor de 50.CNF archivo más.
Para asegurarse de que el servidor MariadB no lea este archivo de configuración, cambie el nombre del archivo de configuración de Mariadb principal Servidor de 50.CNF a Servidor de 50.CNF.respaldo Con el siguiente comando:
$ sudo MV -v 50 -server.cnf 50-server.CNF.respaldo
Crear un nuevo archivo de configuración de mariadb 50-server-multi.CNF Con el siguiente comando:
$ sudo nano 50-server-multi.CNF
Escriba las siguientes líneas en el 50-server-multi.CNF archivo.
[mysqld_multi]
mysqld =/usr/bin/mysqld_safe
mysqladmin =/usr/bin/mysqladmin
log =/var/log/mysql/mysqld_multi.registro
usuario = multi_admin
contraseña = secreto
Una vez que haya terminado, presione + X seguido por Y y Para salvar el 50-server-multi.CNF archivo.
Aquí, los registros del servidor MariadB se almacenarán en el archivo /var/log/mysql/mysqld_multi.registro.
El mysqld_multi Nombre de usuario del administrador será multi_admin y la contraseña será secreto. Esto es necesario para permitir el CERRAR Permiso a las instancias del servidor de base de datos Mariadb.
En este artículo, ejecutaré 3 instancias de base de datos Mariadb para la demostración. Cada una de las instancias de base de datos de Mariadb tendrá su propio archivo de configuración.
Crear un archivo de configuración 50-server1.CNF Para el primer Instace del servidor de base de datos Mariadb de la siguiente manera:
$ sudo nano 50-server1.CNF
Escriba las siguientes líneas en el 50-server1.CNF archivo.
[mysqld1]
usuario = mysql
pid-archivo =/run/mysqld/mysqld1.pid
socket =/run/mysqld/mysqld1.calcetín
Baseir = /usr
datadir =/var/lib/mysql1
tmpdir = /tmp
LC-Messages-Dir =/usr/share/mysql
enlace de enlace = 127.0.0.1
query_cache_size = 16m
log_error =/var/log/mysql/mysqld1_error.registro
expire_logs_days = 10
caracteres-set-server = UTF8MB4
colatación-server = utf8mb4_general_ci
Puerto = 20101
Una vez que haya terminado, presione + X seguido por Y y Para salvar el 50-server1.CNF archivo.
Aquí, mysqld1 es el nombre de la instancia. Para la segunda instancia, será mysqld2 etcétera.
La ruta al archivo PID será /run/mysqld/mysqld1.pid y el archivo de socket será /run/mysqld/mysqld1.calcetín Para el mysqld1 instancia. Estos serán diferentes para cada una de las instancias de mariadb.
El directorio de datos para el mysqld1 La instancia será /var/lib/mysql1. Será diferente para cada una de las instancias de mariadb.
La ruta del archivo de registro de errores para el mysqld1 La instancia será /var/log/mysql/mysqld1_error.registro. Será diferente para cada una de las instancias de mariadb.
El puerto del mysqld1 La instancia será 20101. Será diferente para cada una de las instancias de mariadb.
El archivo de configuración para las instancias de la segunda y tercera mariadb será similar a la primera instancia de mariadb. Por lo tanto, podemos copiar el primer archivo de configuración de la instancia de mariadb 50-server1.CNF y hacer pequeños ajustes.
Copia el 50-server1.CNF Para crear un nuevo archivo de configuración 50-server2.CNF Para la segunda instancia de Mariadb como sigue:
$ sudo cp -v 50 -server1.CNF 50-server2.CNF
De la misma manera, copia el 50-server1.CNF Para crear un nuevo archivo de configuración 50-server3.CNF Para la tercera instancia de Mariadb de la siguiente manera:
$ sudo cp -v 50 -server1.CNF 50-server2.CNF
Para hacer ajustes al segundo archivo de configuración de instancia de servidor mariadb 50-server2.CNF, Ábralo con el nano Editor de texto de la siguiente manera:
$ sudo nano 50-server2.CNF
Ajuste las secciones marcadas del archivo de configuración 50-server2.CNF.
Una vez que haya terminado, presione + X seguido por Y y Para salvar el 50-server2.CNF archivo.
Para hacer ajustes al tercer archivo de configuración de instancia de servidor mariadb 50-server3.CNF, Ábralo con el nano Editor de texto de la siguiente manera:
$ sudo nano 50-server3.CNF
Ajuste las secciones marcadas del archivo de configuración 50-server3.CNF.
Una vez que haya terminado, presione + X seguido por Y y Para salvar el 50-server3.CNF archivo.
Creación de los archivos de registro de mariadb:
Crear un archivo de registro mysqld_multi.registro en el /var/log/mysql/ directorio para el mysqld_multi Programa de la siguiente manera:
$ sudo touch/var/log/mysql/mysqld_multi.registro
Establecer al propietario (a mysql) y grupo (a admir) del mysqld_multi.registro Archivo con el siguiente comando:
$ sudo chown -v mysql: adm/var/log/mysql/mysqld_multi.registro
Establezca los permisos de archivo correctos en el mysqld_multi.registro Archivo con el siguiente comando:
$ sudo chmod -v u = rw, g = rw, o =/var/log/mysql/mysqld_multi.registro
Crear archivos de registro de error para el mysqld1, mysqld2, y mysqld3 Instancias de mariadb con el siguiente comando:
$ sudo touch/var/log/mysql/mysqld 1 ... 3 _error.registro
Cambiar al propietario (a mysql) y grupo (a admir) de los archivos de registro de error del mysqld1, mysqld2, y mysqld3 Instancias de mariadb con el siguiente comando:
$ sudo chown -v mysql: adm/var/log/mysql/mysqld 1 ... 3 _error.registro
Establezca los permisos de archivo correctos en los archivos de registro de error del mysqld1, mysqld2, y mysqld3 Instancias de mariadb con el siguiente comando:
$ sudo chmod -v u = rw, g = rw, o =/var/log/mysql/mysqld 1 ... 3 _error.registro
Creación y preparación de los directorios de datos de MariaDB:
Crear directorios de datos de mariadb para el mysqld1, mysqld2, y el mysqld3 Instancias de mariadb con el siguiente comando:
$ sudo mkdir -v/var/lib/mysql 1 ... 3
Cambiar el propietario y el grupo de cada uno de los directorios de datos a mysql Con el siguiente comando:
$ sudo chown -v mysql: mysql/var/lib/mysql 1 ... 3
Establezca los permisos correctos en cada uno de los directorios de datos con el siguiente comando:
$ sudo chmod -v u = rwx, g = rx, o = rx/var/lib/mysql 1 ... 3
Una vez que el propietario, el grupo y los permisos de archivo se establecen correctamente, todos los directorios de datos de MariadB deben verse como se muestra en la captura de pantalla a continuación:
$ ls -lhd/var/lib/mysql*
Ahora, debe preparar los directorios de datos de MariaDB. Para hacer eso, puedes usar el mysql_install_db dominio.
Para preparar el Directorio de datos de MariaDB /var/lib/mysql1 Para el mysqld1 instancia, ejecute el siguiente comando:
$ sudo mysql_install_db --user = mysql --datadir =/var/lib/mysql1
El directorio de datos /var/lib/mysql1 debería estar listo para el mysqld1 instancia.
De la misma manera, prepare el Directorio de datos de MariaDB /var/lib/mysql2 Para el mysqld2 instancia con el siguiente comando:
$ sudo mysql_install_db --user = mysql --datadir =/var/lib/mysql2
El directorio de datos /var/lib/mysql2 debería estar listo para el mysqld2 instancia.
Además, prepare el directorio de datos de Mariadb /var/lib/mysql3 Para el mysqld3 instancia con el siguiente comando:
$ sudo mysql_install_db --user = mysql --datadir =/var/lib/mysql3
El directorio de datos /var/lib/mysql3 debería estar listo para el mysqld3 instancia.
Ejecutando múltiples instancias de mariadb:
Ahora puede ejecutar múltiples instancias de mariadb usando el mysqld_multi programa.
Puede verificar si las instancias de mariadb mysqld1, mysqld2, y mysqld3 se está ejecutando con el siguiente comando:
$ sudo mysqld_multi report
Como puede ver, las instancias de mariadb no se están ejecutando en este momento.
Puede iniciar todas las instancias del servidor de base de datos MariadB con el siguiente comando:
$ sudo mysqld_multi inicio
Como puede ver, las instancias del servidor de base de datos MariadB mysqld1, mysqld2, y mysqld3 estan corriendo.
$ sudo mysqld_multi report
Como puede ver, los puertos de base de datos Mariadb 20101 (para mysqld1), 20102 (para mysqld2), y 20103 (para mysqld3) estan escuchando. Entonces, las instancias de la base de datos Mariadb se están ejecutando perfectamente.
Otorgando permiso de cierre a las instancias de la base de datos de Mariadb:
mysqld_multi necesita tener el CERRAR Permiso para poder detener las instancias de la base de datos Mariadb. Para otorgar el permiso de cierre para mysqld_multi, Debe iniciar sesión en cada una de las instancias de la base de datos de MariaDB, crear un multi_admin usuario (con la contraseña de inicio de sesión secreto), y concede el CERRAR permiso para el multi_admin usuario.
Primero, inicie sesión en la primera instancia de servidor de base de datos MariadB mysqld1 Con el siguiente comando:
$ sudo mysql -s/run/mysqld/mysqld1.calcetín -u raíz
Deberías iniciar sesión.
Para crear un nuevo usuario multi_admin con la contraseña secreto y otorga el CERRAR permiso para el multi_admin Usuario, ejecute la siguiente instrucción SQL:
Mariadb [(ninguno)]> Subvención cierre *.* A 'multi_admin'@'localhost' identificado por 'secreto';
Salga de la consola de base de datos Mariadb con el siguiente comando:
Mariadb [(ninguno)]> Salir
De la misma manera, inicie sesión en la segunda instancia de servidor de base de datos MariDB mysqld2 Con el siguiente comando:
$ sudo mysql -s/run/mysqld/mysqld2.calcetín -u raíz
Crear un nuevo usuario multi_admin con la contraseña secreto y otorga el CERRAR permiso para el multi_admin Usuario con la siguiente instrucción SQL:
Mariadb [(ninguno)]> Subvención cierre *.* A 'multi_admin'@'localhost' identificado por 'secreto';
Salga de la consola de base de datos Mariadb con el siguiente comando:
Mariadb [(ninguno)]> Salir
Además, inicie sesión en la tercera instancia de servidor de base de datos MariadB mysqld3 Con el siguiente comando:
$ sudo mysql -s/run/mysqld/mysqld3.calcetín -u raíz
Crear un nuevo usuario multi_admin con la contraseña secreto y otorga el CERRAR permiso para el multi_admin Usuario con la siguiente instrucción SQL:
Mariadb [(ninguno)]> Subvención cierre *.* A 'multi_admin'@'localhost' identificado por 'secreto';
Salga de la consola de base de datos Mariadb con el siguiente comando:
Mariadb [(ninguno)]> Salir
Veamos si mysqld_multi puede detener las instancias del servidor de base de datos Mariadb.
Como puede ver, las instancias del servidor de base de datos MariadB se están ejecutando.
$ sudo mysqld_multi report
Para detener las instancias del servidor de base de datos Mariadb, ejecute el siguiente comando:
$ sudo mysqld_multi stop
Como puede ver, las instancias del servidor de base de datos MariadB ya no se están ejecutando.
$ sudo mysqld_multi report
Los puertos del servidor de base de datos Mariadb 20101 (para mysqld1), 20102 (para mysqld2), y 20103 (para mysqld3) no están escuchando tan bien.
Iniciar instancias de servidor de base de datos Mariadb en el arranque del sistema:
No desea iniciar las instancias del servidor de base de datos Mariadb manualmente cada vez que su servidor bota. Para iniciar automáticamente las instancias del servidor de base de datos MariadB, puede agregar el comando inicial como un cronjob.
Para agregar cualquier cronjob, debe modificar el archivo CRONTAB.
Para modificar el archivo CRONTAB, ejecute el siguiente comando:
$ sudo crontab -e
Prensa 1 (para seleccionar el editor de texto nano) y luego presione .
El archivo crontab debe abrirse. Agregue la línea como marcada en la captura de pantalla a continuación.
Una vez que haya terminado, presione + X seguido por Y y Para guardar el archivo CRONTAB.
Para que los cambios entren en vigencia, reinicie su computadora con el siguiente comando:
$ sudo reinicio
Una vez que su computadora arranca, debería ver que todas las instancias de la base de datos de Mariadb se están ejecutando.
$ sudo mysqld_multi report
Como puede ver, los puertos de base de datos Mariadb 20101 (para mysqld1), 20102 (para mysqld2), y 20103 (para mysqld3) estan escuchando. Entonces, las instancias de la base de datos Mariadb se están ejecutando perfectamente.
Conclusión:
En este artículo, le he mostrado cómo ejecutar múltiples instancias del servidor de base de datos Mariadb en la misma computadora/servidor utilizando el mysqld_multi programa. Este artículo debería ayudarlo a configurar múltiples instancias del servidor de base de datos Mariadb en el mismo Ubuntu 20.04 LTS Computer/servidor.