Anuncios

Bienvenidos sean a este post, veremos una opcion interesante para este motor.

Anuncios

En el post anterior vimos como crear una tabla remota y una tabla local, en el caso de la tabla local pasamos los datos necesarios para que se conecte a la remota y listo pero que sucede si tenemos que realizar varias conexiones a distintas tablas? Una buena solucion es definir un enlace (link) a un servidor remoto o mas especificamente a una base remota.

Anuncios

Este puede hacerse mediante la instruccion CREATE SERVER, un enlace creado de esta manera puede ser usado por todos los motores que permitan acceso a tablas desde servidores remotos:

  • FEDERATEDX / FEDERATED
  • CONNECT
  • SPIDER
Anuncios

A continuacion veamos un ejemplo de la instruccion:

CREATE SERVER srv1
  FOREIGN DATA WRAPPER `mysql`
  OPTIONS (
    USER 'root',
    PASSWORD 'root',
    HOST '127.0.0.1',
    DATABASE 'remote_server'
  );
Anuncios

Como podemos ver nos crea un enlace llamado srv1 el cual contendra todo los datos necesarios para establecer una conexion, pero no tenemos forma de establecer cual sera la tabla donde debemos conectarnos, para ello debemos hacer lo siguiente:

CREATE TABLE test.t
  ENGINE = FEDERATED
  CONNECTION 'srv1/user';
Anuncios
Anuncios

Esta es la forma de crear tablas locales para conectarse al equipo remoto, de la cual hablamos en el post anterior pero a diferencia de lo visto en ese post en lugar de pasar todos los datos de la conexion pasamos el elemento que creamos seguido de la tabla que deseamos conectarnos, esto nos permitiria tener esto en varias tablas sin la necesidad de tener que pasar todos los datos por cada tabla, al igual que vimos en el post anterior si se omite el nombre de la tabla utiliza el mismo nombre de la tabla creada localmente pero para ese caso debe tener el mismo nombre.

Anuncios

Estos enlaces son almacenados en los tablas de los servidores mas exactamente en la base de datos del sistema llamada mysql, como todas las tablas en esta base deberian ser solo consultadas y no modificadas, veamos un ejemplo de query sobre esta tabla para ver los enlaces:

MariaDB [test]> SELECT * FROM mysql.servers WHERE Server_name = 'srv1' \G
*************************** 1. row ***************************
Server_name: srv1
       Host: remote_server
         Db: db1
   Username: root
   Password: root
       Port: 0
     Socket:
    Wrapper: mysql
      Owner:
1 row in set (0.00 sec)
Anuncios

Para este tipo de elemento en la opcion de Wrapper solamente se usa mysql y no se puede usar Owner (por el momento), veamos la siguiente instruccion:

DROP SERVER IF EXISTS srv1;
Anuncios

Esta eliminara el enlace que informemos, dado que los enlaces no se pueden editar pero si podemos eliminarlo y volverlo a generar con los nuevos datos.

Anuncios

En resumen, hoy hemos visto como crear enlaces de servidores remotos, el procedimiento para hacerlo, como usarlo, como obtenerlo de la base myssql y como eliminarlo, espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios
pp258

Donación

Es para mantenimento del sitio, gracias!

$1.50

Anuncio publicitario