PASO 01.1: INSTALACIÓN MARIADB UBUNTU /VARIAS INSTANCIAS/

INSTALACIÓN DEL SERVIDOR BASE: MARIADB 

Primero actualizamos el sistema de Ubuntu 22.04 LTS. Tras las actualizaciones, lo reiniciamos.

sudo apt update

sudo apt update -y

sudo reboot

 

Tras eso , instalamos el paquete común de propiedades del software. 

sudo apt install software-properties-common -y 

 

Ahora, agregamos la clave de firma de MariaDB y el repositorio APT de Maria DB. Si nos sale error seguimos ejecutando los siguientes comandos y comprobamos si Maria DB está en la versión 10.6, sino es así llamar a Manolo. 

curl -LsS -O https://downloads.mariadb.com/MariaDB/mariadb_repo_setup sudo bash mariadb_repo_setup --mariadb-server-version=10.6

Por último, actualizamos los paquete e instalamos la base de datos MariaDB. Tras esto, comprobamos la versión de MariaDB. Si está en 10.6, todo va bien. 

sudo apt update

sudo apt install mariadb-server mariadb-client

systemctl status mariadb

 Fuente de la información:  https://computingforgeeks.com/how-to-install-mariadb-on-ubuntu-lts-linux/?expand_article=1 

DETENCIÓN DEL SERVIDOR 

Con este comando veremos el estado de nuestra base de datos. Al ejecutarse veremos que MariaDB está en funcionamiento. 

sudo systemctl status mysql

 

Buscaremos que MariaDB esté detenido por lo que usaremos esta secuencia: 

sudo systemctl stop mysql

Al comprobar el estado deberá de estar inacitvo. También buscamos eliminar el mysql desde el inicio para que no se arranque de forma automática. 

sudo systemctl disable mysql

 

CONFIGURACIÓN DE VARIAS INSTANCIAS DE BASES DE DATOS

Todos los archivos de configuración de la base de datos están en /etc/mysql/mariadb.conf.d/

cd /etc/mysql/mariadb.conf.d/

 

Cambiaremos el nombre de archivo de la configuración principal de MariaDB ya que no nos interesa que lea este archivo.

sudo mv -v 50-server.cnf 50-server.cnf.backup

 

Ahora crearemos un nuevo archivo de configuración MariaDB 

sudo nano 50-server-multi.cnf

 

Completamos la pantalla con estos datos

[mysqld_multi]

mysqld                      = /usr/bin/mysqld_safe

mysqladmin                  = /usr/bin/mysqladmin

log                         = /var/log/mysql/mysqld_multi.log

user=multi_admin

password=secret

 

 

Al terminar de completar le damos a ctrl+X y le damos a Y, cliclamos intro y listo. Los registros del servidor MariaDB se almacenarán en este archivo /var/log/mysql/mysqld_multi.log

El mysqld_multi es el nombre del usuario que será multi_admin y la contraseña será secret. Esto es necesario para permitir apagar los permisos de las instancias del servidor. 

 

Ejecutaremos 2 instancias como ejemplo de los pasos a seguir. 

1. Primero, crearemos un archivo de configuración para la primera instancia. 

sudo nano 50-server1.cnf 

 

Volvemos a completarlo con los siguientes datos,

[mysqld1]
user                     = mysql
pid-file                 = /run/mysqld/mysqld1.pid
socket                   = /run/mysqld/mysqld1.sock
basedir                  = /usr
datadir                  = /var/lib/mysql1
tmpdir                   = /tmp
lc-messages-dir          = /usr/share/mysql
bind-address             = 0.0.0.0
query_cache_size         = 16M
log_error                = /var/log/mysql/mysqld1_error.log
expire_logs_days         = 10
character-set-server     = utf8mb4
collation-server         = utf8mb4_general_ci
port                     = 3308

 

Acabamos de crear la primera instancia. Para la segunda instancia será mysqld2. Así haremos, de forma consecutiva, las demás instancias. 

Para hacer la segunda instancia, al ser similares, copiaremos el primer archivo 50-server1.cnf y crearemos un nuevo archivo 50-server2.cnf.

sudo cp -v 50-server1.cnf 50-server2.cnf 

 

Luego ajustaremos las secciones marcadas del archivo de configuración de cada archivo creado.

sudo nano 50-server2.cnf 

 

[mysqld2]
user                     = mysql
pid-file                 = /run/mysqld/mysqld2.pid
socket                   = /run/mysqld/mysqld2.sock
basedir                  = /usr
datadir                  = /var/lib/mysql2
tmpdir                   = /tmp
lc-messages-dir          = /usr/share/mysql
bind-address             = 0.0.0.0
query_cache_size         = 16M
log_error                = /var/log/mysql/mysqld2_error.log
expire_logs_days         = 10
character-set-server     = utf8mb4
collation-server         = utf8mb4_general_ci
port                     = 3309

 

CREACIÓN DE LOS ARCHIVOS DE REGISTRO

1. Creamos un archivo de registro mysqld_multi.log en el /var/log/mysql/ para el directorio mysqld_multi que será programado de la siguiente manera.

sudo touch /var/log/mysql/mysqld_multi.log

 

sudo chown -v mysql:adm /var/log/mysql/mysqld_multi.log

 

sudo chmod -v u=rw,g=rw,o= /var/log/mysql/mysqld_multi.log

 

2. Ahora creamos un archivo de registro de errores para las instancias. 

sudo touch /var/log/mysql/mysqld1_error.log

 

sudo touch /var/log/mysql/mysqld2_error.log

 

3. Ahora cambiamos el propietario a mysql y el grupo admin en las instancias. 

 

sudo chown -v mysql:adm /var/log/mysql/mysqld1_error.log

 

sudo chown -v mysql:adm /var/log/mysql/mysqld2_error.log

 

4. Establecemos los permisos de archivo correctos para los archivos de registro de errores de cada una de las instancias. 

sudo chmod -v u=rw,g=rw,o= /var/log/mysql/mysqld1_error.log

 

sudo chmod -v u=rw,g=rw,o= /var/log/mysql/mysqld2_error.log

 

CREACIÓN Y PREPARACIÓN DE LOS DIRECTORIOS DE DATOS MARIADB

1. Vamos a crear los directorios en cada carpeta de mysqld(1) instancias de MariaDB 

sudo mkdir -v /var/lib/mysql1

 

sudo mkdir -v /var/lib/mysql2

 

2. Cambiamos el propietario y el grupo de cada uno de los directorios.

sudo chown -v mysql:mysql /var/lib/mysql1

 

 sudo chown -v mysql:mysql /var/lib/mysql2

 

3. Tras cambiar los propietarios, establecemos los permisos correctos de cada directorio. 

sudo chmod -v u=rwx,g=rw,o=rx /var/lib/mysql1

 

sudo chmod -v u=rwx,g=rw,o=rx /var/lib/mysql2

 

4. Una vez introducimos todos los comandos debemos de comprobar, mediante el siguiente comando, lo que nos sale en la captura. 

ls -lhd /var/lib/mysql*

 

 

5. Ahora debemos de preparar cada directorio de datos MariaDB. 

sudo mysql_install_db --user=mysql --datadir=/var/lib/mysql1

 

sudo mysql_install_db --user=mysql --datadir=/var/lib/mysql2

 

EJECUCIÓN DE VARIAS INSTANCIAS DE MARIADB

Podemos ejecutar cada directorio de MariaDB mediante mysqld_multi del programa. Lo comprobaremos en cada instancias con este comando. 

sudo mysqld_multi report

 

Buscamos que estas instancias estén en funcionamiento.

sudo mysqld_multi start

 

Al introducir este comando volvemos a ver su estado y deben de estar running

sudo mysqld_multi report

 

Como se puede ver, los puertos de la base de datos MariaDB se está ejecutando perfectamente. 

 sudo ss -tlpn

 

PERSMISO DE APAGADO EN LAS INSTANCIAS DE MARIADB 

Mysqld_multi necesita el permiso para poder detener las instancias. Para otorgar el permiso de apagado a mysqld_multi debe iniciar sesión en cada una de las instancias de la base de datos MariaDB, crear una multi_admin usuario (con la contraseña de inicio de sesión secret), y otorgar la APAGAR permiso para el multi_admin usuario.

1. Primero inicie sesión en la primera instancia. 

 sudo mysql -S /run/mysqld/mysqld1.sock -u root

 

Para crear un nuevo usuario multi_admin con la contraseña secret y concede el APAGAR permiso para el multi_admin como usuario.

MariaDB [(none)]> GRANT SHUTDOWN ON *.* TO 'multi_admin'@'localhost' IDENTIFIED BY 'secret';

 

De la misma manera haremos el número de instancias, mysql2,3,..., que tenemos instalada en la consola. 

Ahora comprobamos que podemos parar las instancias con esta secuencia de códigos. 

 sudo mysqld_multi report

 

  sudo mysqld_multi stop

 

 sudo ss -tlpn

Esta última secuencia es para confirmar que las instancias no están en funcionamiento.

 

ARRANQUE DE VARIAS INSTANCIAS AL INICIAR EL SERVIDOR

Para iniciar automáticamente las instancias del servidor de base de datos MariaDB  ya que no nos interesa arrancar manualmente los servidores, lo haremos de esta forma.

 sudo crontab -e

 

 

Al estar en esta pantalla damos a intro y nos saldrá esta información en pantalla. 

9f41b45e5b1e8564f3d2a87b6eb472e6.jpg

Para que los cambios hagan efecto, reiniciamos el servidor. 

 sudo reboot

Para comprobar que se ha reiniciado, introducimos este código y las instancias han de estar en activo. 

 sudo mysqld_multi report

Fuente de la información:  https://ciksiti.com/es/chapters/4129-running-multiple-mariadb-instances-on-ubuntu-20-04-lts--li

 

CREAR UN NUEVO USUARIO CON TODOS LOS PERMISOS

Para crear nuevos usuarios iremos creando el mismo usuario en cada carpeta creada para las instancias ya que van por independiente. Para ello, nos redirigiremos a este archivo e instalaremos el usuario junto a sus privilegios. 

1. Entraremos en el msqld, junto a al número de la instancia a la que pertenece, donde vamos a agregar al usuario. 

 sudo mysql -S /run/mysqld/mysqld1.sock -u root

 

2. Ya dentro, creamos el usuario junto a su contraseña y todos los privilegios. Reescribir estas rutas a mano en la konsola. 

MariaDB [(none)]> CREATE USER 'orizon'@'%' IDENTIFIED BY 'Orizonsa';

 

Si no nos deja con % probamos con este código, luego lo cambiamos en el HeidiSQL

MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'orizon'@'localhost' IDENTIFIED BY 'Orizonsa';

 

3. Le otorgamos todos los privilegios

MariaDB [(none)]> FLUSH PRIVILEGES;

 

Fuente de la información: https://www.hostinger.es/tutoriales/como-crear-usuario-mysql 

 

Al terminar este proceso, seguiríamos en la descarga de MYSQL Workbench!