Created
July 7, 2014 21:36
-
-
Save DevWellington/71c172541c7a3179e9f2 to your computer and use it in GitHub Desktop.
FEDERATED MySQL
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
O FEDERATED é um Storage Engine, ou seja, um motor de armazenamento que surgiu juntamente com o MySQL 5 e que permite ao administrador de bancos de dados ou quem quer que esteja pilotando o MySQL, criar tabelas locais mas que utilizam dados remotos, localizados em outros servidores de bancos de dados localizados em outra posição geográfica ou IP diferente - podendo ser utilizado também em tabelas de um mesmo banco de dados. | |
Para saber se este motor esta habilitado em seus servidores de bancos de dados, entre com o comando show engines, dentro do mysql client: | |
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 | YES | 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,05 sec) | |
Um exemplo de criação de tabelas: | |
CREATE TABLE db1.t1 ( | |
ID int, | |
name char(60) | |
) ENGINE = MyISAM COMMENT 'Criamos uma tabela que realmente armazena os dados...'; | |
### | |
-- para tabelas FEDERATED, utilizamos a connection string, informada na declaração COMMENT | |
-- que é mysql://user_name[:password]@host_name[:port]/db_name/table_name | |
-- | |
-- onde: | |
-- | |
-- mysql é o protocolo | |
-- user_name é o usuário de conexão com o servidor MySQL remoto | |
-- password é a senha - opcional, por isso entre colchetes | |
-- host_name é o nome do host ou IP | |
-- db_name é o nome do banco de dados remoto | |
-- table_name é o nome da tabela do banco de dados remoto | |
### | |
CREATE TABLE db2.t1 ( | |
ID int, | |
name char(60) | |
) ENGINE = FEDERATED COMMENT 'mysql://wagnerbianchi:12345@work.mysql.com/db1/t1'; | |
Quando enviarmos um SELECT em db2.t1, os dados serão retornados de db1.t1 na verdade. | |
Imagem postada | |
Para que funcione corretamente e seguramente: | |
=> Tenha certeza que o usuário que você utiliza para realizar a conexão remota esteja com as devidas permissões para realizar tal conexão - restringindo um host específico ou mesmo de qualquer host (%); | |
=> Garanta que nenhum outro usuário que não seja um Administrador tenha acesso ao diretório de dados do MySQL, pois, ao abrir o arquivo .frm, você poderá ler o usuário, host e senha do servidor remoto - dando o queijo suíço ao rato de mãos beijadas. | |
Manual online: http://dev.mysql.com...age-engine.html | |
Espero ter ajudado, Happy MySQL'ing!! :natal_wink: | |
FONTE: http://forum.imasters.com.br/topic/377973-alguem-pode-me-explicar-o-federated-storage-engine/ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment