FEDERATED: cómo activar storage engine en GNU/Linux

En algún momento se puede requerir activar el motor FEDERATED para mysql en nuestro servidor.

Una tabla de la base de datos ‘FEDERATED‘ no se almacena localmente. Viene a ser algo asi como crear la esctructura de los datos en local pero el almacenamiento de los datos se realiza en otro servidor remoto y se usa el api del cliente de mysql para las operaciones de lectura escritura. actualización e inserción.

En ejemplo de tabla FEDERATED:

CREATE TABLE federated_table (
    id     INT(20) NOT NULL AUTO_INCREMENT,
    name   VARCHAR(32) NOT NULL DEFAULT '',
    other  INT(20) NOT NULL DEFAULT '0',
    PRIMARY KEY  (id),
    INDEX name (name),
    INDEX other_key (other)
)
ENGINE=FEDERATED
DEFAULT CHARSET=latin1
CONNECTION='mysql://fed_user@remote_host:9306/federated/test_table';

Para activar esta opción en nuestro servicio de mysql es necesario ver si tenemos compilado el soporte. Para ello ejecutaremos

SHOW ENGINES;

Un ejemplo en una distro Debian :

mysql> show engines ;
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine     | Support | Comment                                                        | Transactions | XA   | Savepoints |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB     | YES     | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |
| MRG_MYISAM | YES     | Collection of identical MyISAM tables                          | NO           | NO   | NO         |
| BLACKHOLE  | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |
| CSV        | YES     | CSV storage engine                                             | NO           | NO   | NO         |
| MEMORY     | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |
| FEDERATED  | NO      | Federated MySQL storage engine                                 | NULL         | NULL | NULL       |
| ARCHIVE    | YES     | Archive storage engine                                         | NO           | NO   | NO         |
| MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance         | NO           | NO   | NO         |
+------------+---------+----------------------------------------------------------------+--------------+------+------------+
8 rows in set (0.00 sec)

En la documentación del comando show engines vemos que hay cuatro valores posibles:

  •  Yes : El soporte para ese motor es posible y está activo
  • Default : Como yes, pero el motor es que hay por defecto
  • No : El motor no está soportado
  • Disabled : El motor está soportado pero no activo.

En caso de las máquinas con Centos 5.x está como «NO» así que es necesario recompilar para activar el soporte. Para ello realizamos los siguientes pasos:

Descargamos las fuentes de mysql :

wget http://mirror.centos.org/centos/5/updates/SRPMS/mysql-5.0.77-4.el5_4.1.src.rpm
rpm -ivh mysql-5.0.77-4.el5_4.1.src.rpm

Si en nuestro sistema tenemos rpmbuild4.x:
Editar el fichero /usr/src/redhat/SPECS/mysql.spec y agregar a la seccion %configure –with-federated-storage-engine

Con rpmbuild 5 :

rpmbuild -bb --with federated-storage-engine /usr/src/redhat/SPECS/mysql.spec

Una vez generado los paquetes los ACTULIZAMOS en vez de instalar para evitar problemas.

rpm -Uvh /usr/src/redhat/RPMS/x86_64/mysql-5.0.77-4.1.x86_64.rpm /usr/src/redhat/RPMS/x86_64/mysql-server-5.0.77-4.1.x86_64.rpm

Para ello necesitaremos añadir federated en nuestro fichero my.conf

Una respuesta a «FEDERATED: cómo activar storage engine en GNU/Linux»

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.