GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar un clúster de MySQL en Ubuntu 16.04

MySQL Cluster es una tecnología para proporcionar alta disponibilidad para bases de datos MySQL. Utiliza NDB (Network DataBase) o NDBCLUSTER como motor de almacenamiento de la base de datos. MySQL Cluster está diseñado como una arquitectura ACID multimaestro sin un único punto de falla, utiliza fragmentación automática (particionamiento) para escalar los procesos de lectura y escritura.

Para implementar un MySQL Cluster, necesitamos 3 tipos diferentes de nodos:

  • Nodo de gestión (ndb_mgmd )
    • Se utiliza para monitorear y configurar el clúster.
  • Nodo de datos (ndbd )
    • Estos nodos se utilizan para almacenar los datos que proporcionan fragmentación automática y pueden manejar la replicación.
  • Nodo SQL (mysqld )
    • Interfaces de MySQL Server para conectarse a todos los nodos.

En este tutorial, le mostraré cómo instalar un 'Clúster MySQL' en Ubuntu 16.04 LTS (Xenial Xerus).

Requisitos previos

  • 4 nodos con servidor Ubuntu 16.04
  1. 192.168.1.11    nodo de gestión
  2. 192.168.1.12    datos-nodo1
  3. 192.168.1.13    datos-nodo2
  4. 192.168.1.14    nodo SQL
  • Privilegios de raíz en los nodos.

Paso 1:instalar y configurar el nodo de gestión

En este paso, instalaremos el nodo de administración para nuestro clúster con la dirección IP 192.168.1.11. Instalamos el software de clúster MySQL y lo configuramos como nodo de administración para el clúster.

Inicie sesión en el nodo de gestión con ssh:

ssh [email protected]
TYPE YOUR PASSWORD

A. Instale el nodo de administración de clústeres de MySQL

Abra el sitio del clúster de MySQL aquí y elija la opción 'Linux-generic ' y descargue el paquete de 64 bits haciendo clic en 'Descargar botón '.

Descargue el paquete de clúster de MySQL con wget y extráigalo.

wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
tar -xzvf mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz

Cambiar el nombre del directorio a mysql:

mv mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64/ mysql/

Vaya al directorio mysql y copie los 2 archivos binarios para el comando de administración de clústeres 'ndb_mgmd y ndb_mgm ' al directorio '/usr/local/bin/' y luego hágalos ejecutables con el comando chmod.

cd ~/mysql/
cp bin/ndb_mgm* /usr/local/bin/
chmod +x /usr/local/bin/ndb_mgm*

B. Configurar el nodo de administración de clústeres de MySQL

Configure el nodo de administración creando un nuevo directorio 'mysql-cluster' para los archivos de configuración en el directorio '/var/lib/'.

Cree un directorio 'mysql-cluster' y cree una nueva configuración 'config.ini' en el directorio:

mkdir -p /var/lib/mysql-cluster/
vim /var/lib/mysql-cluster/config.ini

Pegue la configuración a continuación:

[ndbd default]
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M

[mysqld default]

[ndb_mgmd default]

[tcp default]

# Cluster Control / Management node
[ndb_mgmd]
hostname=192.168.1.11

# Data Node 1
[ndbd]
hostname=192.168.1.12
DataDir= /var/lib/mysql-cluster

# Data Node 1
[ndbd]
HostName=192.168.1.13
DataDir=/var/lib/mysql-cluster

# SQL Node
[mysqld]
hostname=192.168.1.14

# If you to add new SQL Node
[mysqld]

Cambie la dirección IP de ndb_mgmd para administración, ndbd para nodo de datos y mysqld para el nodo sql para que coincida con su configuración.

Guarde el archivo y salga.

A continuación, inicie el proceso del nodo de gestión con el siguiente comando:

ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/

Haga que se inicie en el momento del arranque agregando el comando a '/etc/rc.local 'archivo:

echo 'ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/' >> /etc/rc.local

Si ves los resultados:

MySQL Cluster Management Server mysql-5.6.31 ndb-7.4.12

Luego, el proceso del nodo de gestión se está ejecutando.

Compruebe el nodo de gestión con otro comando:

# Checking port 1186 used by ndb_mgmd
netstat -plntu

# Checking the management node is ready
ndb_mgm
show

Paso 2:instalar y configurar el nodo de datos

En este paso, instalaremos el software de clúster MySQL y lo configuraremos como nodo de datos. Usaremos 2 servidores ubuntu 16.04 como nodos de datos:data-node1 con dirección IP 192.168.1.12 y data-node2 con dirección IP 192.168.1.13.

Inicie sesión en el servidor data-node1 con ssh:

ssh [email protected]

A. Instale MySQL Cluster en el nodo de datos

Antes de instalar el software de clúster de MySQL, debemos instalar un nuevo paquete 'libaio1 ' y crea un nuevo usuario y grupo mysql . Ejecute el siguiente comando como root para eso:

apt-get install libaio1
groupadd mysql
useradd -g mysql mysql

Ahora descargue el paquete de clúster de MySQL 'Linux-Generic ', extraiga y cambie el nombre del directorio a mysql.

wget http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
tar -xzvf mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
mv mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64/ mysql/

Mueva el directorio 'mysql' a '/usr/local /' y vaya a ese directorio.

mv mysql /usr/local/
cd /usr/local/mysql/

Ejecute el script para crear las bases de datos del sistema:

./scripts/mysql_install_db --user=mysql

Si no hay ningún error, copie el archivo de servicio mysql en '/etc/init.d ' y agregue el script de inicio de mysql para que se ejecute en el momento del arranque.

cp support-files/mysql.server /etc/init.d/mysql
systemctl enable mysql

A continuación, mueva todos los comandos binarios de mysql a '/usr/local/bin ' y crea un nuevo enlace simbólico.

mv bin/* /usr/local/bin/
rm -rf bin/
ln -s /usr/local/bin /usr/local/mysql/

Cambie el propietario del directorio mysql a usuario raíz y agrupe mysql, y cambie el directorio de datos a mysql como propietario.

chown -R root:mysql .
chown -R mysql data

B. Configurar el nodo de datos de clúster de MySQL

Cree un nuevo archivo de configuración mysql 'my.cnf ' con vim:

vim /etc/my.cnf

Pegue la configuración a continuación:

# MySQL Config
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
user=mysql

# Run ndb storage engine
ndbcluster
# IP address management node
ndb-connectstring=192.168.1.11

[mysql_cluster]
# IP address management node
ndb-connectstring=192.168.1.11

# MySQL Pid and Log
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

Guardar y salir.

Cree un nuevo directorio para los nodos de datos y cambie la propiedad al usuario mysql.

mkdir -p /var/lib/mysql-cluster/
chown -R mysql /var/lib/mysql-cluster

C. Inicie MySQL en el nodo de datos

Inicie el servicio mysql con el siguiente comando:

ndbd --initial
systemctl start mysql

Asegúrese de que no haya ningún error y que los resultados estén a continuación (nodo de datos 2):

Se inicia MySQL en el nodo de datos. Ahora puede configurar la contraseña de MySQL con el comando:

mysql_secure_installation

o acceda al shell de MySQL.

mysql -u root -p

NOTA :
Rehaga este paso en 'data-node2 ' dirección IP del servidor 192.168.1.13.

Paso 3:instalar y configurar el nodo SQL

En este paso, instalaremos el software MySQL Cluster y lo configuraremos como SQL Node. Este nodo se utiliza para acceder a las bases de datos en los nodos de datos. El proceso de instalación es el mismo que el del nodo de datos, pero no tenemos que ejecutar el servicio ndbd en el nodo SQL.

Inicie sesión en el nodo SQL con ssh:

ssh [email protected]

A. Instale MySQL Cluster en el nodo SQL

Instale el paquete libaio1 y cree un nuevo usuario y grupo mysql:

apt-get install libaio1
groupadd mysql
useradd -g mysql mysql

Descargue el paquete de clúster mysql del sitio, extráigalo y cámbiele el nombre:

http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.4/mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
tar -xzvf mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64.tar.gz
mv mysql-cluster-gpl-7.4.12-linux-glibc2.5-x86_64/ mysql/

Mueva el directorio mysql:

mv mysql /usr/local/
cd /usr/local/mysql/

Ejecute mysql_install_db guión:

./scripts/mysql_install_db --user=mysql

Copie el archivo de servicio y agréguelo para que se inicie en el momento del arranque:

cp support-files/mysql.server /etc/init.d/mysql
systemctl enable mysql

Mueva todos los binarios mysql a '/usr/local/bin ' directorio:

mv bin/* /usr/local/bin/
rm -rf bin/
ln -s /usr/local/bin /usr/local/mysql/

Cambie el propietario de todos los archivos y el directorio:

chown -R root:mysql .
chown -R mysql data

B. Configurar el nodo SQL del clúster de MySQL

Crear un nuevo my.cnf archivo de configuración con vim:

vim /etc/my.cnf

Pegue la configuración a continuación:

# MySQL Config
[mysqld]
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
user=mysql

# Run ndb storage engine
ndbcluster
# IP address management node
ndb-connectstring=192.168.1.11

[mysql_cluster]
# IP address management node
ndb-connectstring=192.168.1.11

# MySQL Pid and Log
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

Guardar y salir.

C. Inicie el nodo SQL

Inicie el nodo SQL iniciando el servicio mysql con el comando systemctl:

systemctl start mysql

Se inicia el Nodo SQL, ahora puede configurar la contraseña para MySQL.

mysql_secure_installation

Paso 4 - Prueba

Prueba para crear una nueva base de datos desde el nodo SQL.

mysql -u root -p
TYPE PASSWORD


create database nanana;

Verifique que la base de datos esté replicada en los servidores de nodos de datos.
Y cuando un nodo está apagado, otro nodo manejará la conexión desde el nodo SQL.

mysql -u root -p
TYPE PASSWORD


show databases;

Comprobación del estado del clúster desde el nodo de gestión:

ndb_mgm
show

Paso 5 - Consejos adicionales

Realización de un reinicio y apagado seguro del clúster.

Vaya al nodo de administración del clúster y escriba el siguiente comando para apagar el clúster:

ndb_mgm
shutdown

El comando apagará todos los servicios ndb en los nodos de datos.

Si desea volver a iniciar el clúster, puede ejecutar el siguiente comando en el nodo de administración:

ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/var/lib/mysql-cluster/

Y ejecute el siguiente comando en todos los nodos de datos:

ndbd
systemctl start mysql

Luego inicie el servicio mysql en los nodos SQL:

systemctl start mysql

Ahora su MySQL Cluster se está ejecutando de nuevo.


Ubuntu
  1. Cómo instalar MySQL 8.0 en Ubuntu 18.04

  2. Cómo instalar MySQL en Ubuntu 20.04

  3. Cómo instalar MySQL en Ubuntu 18.04

  4. Cómo instalar MySQL 8.0 en Ubuntu 18.04

  5. Cómo instalar Node.js en Ubuntu 16.04

Cómo instalar Drupal en Ubuntu 14.04

Cómo instalar Node.js en Ubuntu 14.04

Cómo instalar Node.js en Ubuntu 16.04

Cómo instalar Node.js en Ubuntu 19.04

Cómo instalar Node.js en Ubuntu 14.04

Cómo instalar MySQL en Ubuntu 22.04