LinuxParty
MariaDB es un sistema de gestión de bases de datos relacionales (RDBMS). En general utilizamos solo nodo del servidor de la base de datos para pequeños usos, pero si pensamos en aplicaciones que tienen miles de usuarios en línea a la vez, en esa situación, necesitamos una estructura que sea capaz de soportar esta carga y proporciona una alta disponibilidad. Así que tenemos que agregar varios servidores de bases de datos interconectadas entre sí y mantenerlas sincronizada, para que en caso de que algún servidor se caiga, los otros servidores puede tomar su lugar y proporcionar los servicios a los usuarios.
MariaDB Galera Cluster es un clúster sincronizador multi-master activo-activo de bases de datos MariaDB. Que mantiene todos los nodos sincronizados. Clúster MariaDB Galera ofrece replicación synchronus que siempre es de alta disponibilidad (no hay pérdida de datos cuando cae uno de los nodos, y las réplicas de datos son siempre consistentes). Actualmente sólo es compatible con los motores de almacenamiento XtraDB / InnoDB y disponible para la plataforma Linux.
Este artículo le ayudará a configurar MariaDB Galera Cluster con 3 servidores funcionando con CentOS.
Los detalles de los servidores de clústeres son los siguientes.
- DB1 Cluster: 192.168.1.10 (Nombre Host: db1 )
- DB2 Cluster: 192.168.1.20 (Nombre Host: db2 )
- DB3 Cluster: 192.168.1.30 (Nombre Host: db3 )
Nota: Los pasos 1/2/3 se tienen que hacer en todos los nodos del clúster y los pasos restantes son para el nodo específico.
Paso 1: Añadir Repositorios MariaDB
Crear un repositorio MariaDB /etc/yum.repos.d/mariadb.repo usando siguientes contenidos para su sistema. Estos repositorio funcionarán en sistemas CentOS 6.x, Para otro sistema utilizar herramienta de generación de repositorio y añadir a su sistema.
Para CentOS 6 - 64 bits
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/5.5/centos6-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
Para CentOS 6 - 32 bits
[mariadb] name = MariaDB baseurl = http://yum.mariadb.org/5.5/centos6-x86 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1
Paso 2: Instale MariaDB y Galera
Antes de instalar los paquetes del cluster MariaDB Galera, eliminar previamente cualquier MySQL existente o paquetes MariaDB instalados en el sistema.
Después utilice los comandos siguiente para instalar en todos los nodos.
# yum install MariaDB-Galera-server MariaDB-client galera
Paso 3: Configuración inicial MariaDB
Después de instalar correctamente los paquetes en los pasos anteriores, hay que hacer algunas configuraciones iniciales en MariaDB. Utilice el siguiente comando y siga las instrucciones que aparecen en todos los nodos del clúster. Si le solicitan que identifique la contraseña de root, hágalo también.
# mysql_secure_installation # service mysql start
Después de que crear un usuario en MariaDB en todos los nodos, que pueden acceder a la base de datos de la red en clúster.
# mysql -u root -p MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION; MariaDB [(none)]> FLUSH PRIVILEGES; MariaDB [(none)]> exit
Detener el servicio MariaDB antes de iniciar la configuración del clúster
# service mysql stop
Paso 4: Configuración de clúster Setup en DB1
Permite la configuración de inicio de clúster MariaDB Galera de servidor DB1. Editar el archivo de configuración del servidor MariaDB y agregar valores siguientes en la sección [MariaDB].
[root@db1 ~]# vim /etc/my.cnf.d/server.cnf
query_cache_size=0 binlog_format=ROW default_storage_engine=innodb innodb_autoinc_lock_mode=2 wsrep_provider=/usr/lib/galera/libgalera_smm.so wsrep_cluster_address=gcomm://192.168.1.20,192.168.1.30 wsrep_cluster_name='cluster1' wsrep_node_address='192.168.1.10' wsrep_node_name='db1' wsrep_sst_method=rsync wsrep_sst_auth=root:password
Iniciar clúster mediante siguiente comando.
[root@db1 ~]# /etc/init.d/mysql bootstrap Bootstrapping the clusterStarting MySQL.... SUCCESS!
Si usted optiene cualquier problema durante el inicio comprobar el archivo de registro /var/lib/mysql/<nombre-del-host>.err de errores de MariaDB
Paso 5: Añadir DB2 en el Cluster MariaDB
Después de iniciar con éxito clúster en DB1. Iniciar similar configuración en DB2. Editar Archivo de configuración del servidor MariaDB y agregar los valores siguientes en la sección [MariaDB]. Todos los ajustes son similares a DB1 excepto wsrep_node_address, wsrep_cluster_address y wsrep_node_name.
[root@db2 ~]# vim /etc/my.cnf.d/server.cnf query_cache_size=0 binlog_format=ROW default_storage_engine=innodb innodb_autoinc_lock_mode=2 wsrep_provider=/usr/lib/galera/libgalera_smm.so wsrep_cluster_address=gcomm://192.168.1.10,192.168.1.30 wsrep_cluster_name='cluster1' wsrep_node_address='192.168.1.20' wsrep_node_name='db2' wsrep_sst_method=rsync wsrep_sst_auth=root:password
Iniciar clúster mediante siguiente comando.
[root@db2 ~]# /etc/init.d/mysql start Starting MySQL..... SUCCESS!
Paso 6: Agregar DB3 en MariaDB Cluster
Este servidor es opcional, si usted quiere solamente dos servidores en clúster, puede ignorar este paso, pero es necesario eliminar la tercera ip del servidor de archivos de configuración de DB1 / DB2. Para añadir este servidor haga los mismos cambios que DB2.
[root@db3 ~]# vim /etc/my.cnf.d/server.cnf query_cache_size=0 binlog_format=ROW default_storage_engine=innodb innodb_autoinc_lock_mode=2 wsrep_provider=/usr/lib/galera/libgalera_smm.so wsrep_cluster_address=gcomm://192.168.1.10,192.168.1.20 wsrep_cluster_name='cluster1' wsrep_node_address='192.168.1.30' wsrep_node_name='db2' wsrep_sst_method=rsync wsrep_sst_auth=root:password
Iniciar clúster mediante siguiente comando.
[root@db3 ~]# /etc/init.d/mysql start Starting MySQL..... SUCCESS!
Paso 7: Configuración de la prueba MariaDB Galera Cluster
En esta etapa de la configuración del clúster se ha terminado y funciona correctamente. Ahora puede probar la configuración del clúster mediante la creación de bases de datos y tablas en cualquier servidor en clúster, se replicará inmediatamente a todos los servidores en clúster.
Ejemplo:
Primero:
mysql -u root -p(Ya dentro de MariaDB (cualquiera, por ejemplo db1) )show databases;+----------------------+
| Database |
+----------------------+
| information_schema |
| mysql |
| performance_schema |
+----------------------+create database linuxparty;
show databases;
+----------------------+
| Database |
+----------------------+
| information_schema |
| mysql |
| performance_schema |
| linuxparty |
+----------------------+
Segundo:
(Ya dentro de MariaDB db2)show databases;
+----------------------+
| Database |
+----------------------+
| information_schema |
| mysql |
| performance_schema |
| linuxparty |
+----------------------+
Tercero:
(Ya dentro de MariaDB db3)show databases;+----------------------+
| Database |
+----------------------+
| information_schema |
| mysql |
| performance_schema |
| linuxparty |
+----------------------+
-
Bases de Datos
- Cómo hacer copias de seguridad y restaurar MySQL/MariaDB y PostgreSQL con las herramientas 'Automysqlbackup' y 'Autopostgresqlbackup'
- La última versión de MySQL es decepcionante, dicen algunos expertos en bases de datos
- Cómo instalar MongoDB en AlmaLinux 9 con ejemplos de uso
- Cómo instalar PostgreSQL 16 en distribuciones basadas en RHEL, AlmaLinux, RockyLinux y Fedora
- Cómo instalar PhpMyAdmin con Apache en sistemas RHEL, Alma Linux, Rocky Linux, Centos y Fedora
- Cómo hacer una copia de seguridad y restaurar una base de datos PostgreSQL en Linux
- Cómo instalar phpPgAdmin y PostgreSQL en CentOS, AlmaLinux, RHEL, RockyLinux y similares
- 20 comandos mysqladmin para la administración de bases de datos MYSQL/MariaDB
- Copiar y restaurar copias de seguridad de MySQL / MariaDB para la administración de bases de datos
- Crear Copias de Seguridad (Backups) de MariaDB o MySQL Automáticas con AutoMySQLBackup
- Grafana, software para análisis y supervisión
- Cómo configurar la replicación MariaDB (Maestro-Esclavo) en CentOS / RHEL y Debian
- Arrancar al inicio MySQL / MariaDB con Linux.
- Conocer que IPs están conectados a MySQL haciendo consultas a la base de datos.
- MariaDB, guía práctica para Administradores Linux
Comentarios
Además de tener correcta la configuración.
Me marca el error
ERROR 1045 (28000): Access denied for user 'root'@'localho st' (using password: NO)
'password' debe ser el mismo password con el que te identifiques.
Si no, debes ver:
linuxparty.es/index.php/7198-solucionar-cuando-no-puedo-entrar-en-mi-nuevo-phpmyadmin
Básicamente los pasos son:
(desde Linux)
$ mysql -u root -p
(Ahora dentro de MySQL escribes, use mysql, para utilizar la Base de Datos mysql)
mysql> use mysql;
(Finalmente, cambios el password y/o permisos al usario que fuera)
mysql> update user set password=PASSWO RD("rootpasswor d") where User='root';
(Finalmente, recargas los privilegios)
mysql> flush privileges;
mysql> quit