Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Alan Alisson

Alguem pode me explicar o federated Storage Engine

Recommended Posts

Pessoal to precisando muito da ajuda de vocês...

 

Esse é o primeiro site que faço que o cliente vai guardar um banco de dados no computador dele e eu vou precisar resgatar as informações da database dele pelo site que vai ficar hospedado em um host na web.

 

Pesquisando achei a função mysql "federated" que acessa banco de dados remotamente.

 

Por favor se alguem souber como devo usa-la me ajude.

 

Ou caso você saiba outro modo de fazer isso por favor me ajude.

 

se alguem poder dar um exemplo na pratica eu agradeço.

 

site da mysql explicando a função mas está em inglês traduzi no google mas ficou estranho:

http://dev.mysql.com/doc/refman/5.0/en/federated-storage-engine.html

 

Agradeço de coração pela ajuda!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Movido:

 

PHP - Patrocínio: TreinaWeb http://forum.imasters.com.br/public/style_emoticons/default/seta.gif MySQL

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alguem pode me dizer como acessar um banco de dados remotamente?

 

Por favor estou precisando muito...

 

Não acredito que nem os moderadores não podem me dizer como funciona o.O

 

já tentei usar o ip como host mas não aceita, como vocês fazem isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O correto é utilizar o endereço do host ou IP. Se não conseguiu acessar com estes valores, deve ter alguma configuração errada no host onde está localizado o banco de dados.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pesquisando achei que temos que fazer uma serie de mudanças no Painel de Controle...

habilitar um usuário %

 

criar uma na db do site = a que quero puxar do outro server e definir ela do tipo federated mas nada funcionou.

 

quero saber se isso bate, acredito que alguem já tenha passado por isso gente.

 

Pelo que pesquisei só colocar o ip do host que to querendo acessar não funciona.

 

Aguardo respostas ^^

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funciona, desde que o DB ao qual você quer conectar esteja configurado para receber conexões de outros domínios. Aí vai funcionar pelo IP ou pelo endereço. A sua dificuldade é em conectar ou configurar o servidor do cliente para receber esta conexão? Já tentou fazer? Como fez? Utilizou qual código? Apareceu algum erro? Qual erro?

 

Ajude-nos a te ajudar

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá:

 

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/doc/refman/5.1/en/federated-storage-engine.html

 

Espero ter ajudado, Happy MySQL'ing!! http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo Matias Rezende eu não estou conseguindo configurar o host do cliente para receber a conexão.

 

No script tem que utilizar algo especial?

 

 

Amigo Wagner Bianchi, nossa obrigado pela explicação muito boa mesmo, pode se tornar um tutorial pela net.

 

Vou estudar sua resposta e treina-la muito obrigado.

 

 

 

Mas gostaria que o tópico continuasse aberto pois quero saber como o Matias Rezende pode me ajudar a configurar o host do cliente.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então... não vou poder te ajudar, porque não tenho conhecimento sobre instalação e configuração de servidores. Quando perguntei foi no intuito de identificar qual a sua real dificuldade, para que pudesse te ajudar com mais propriedade.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

não tenho certeza se entendi direito..

 

mas procure por bind address

 

e se não estou enganado, deve ser criado um outro usuário, pois não há como acessar remotamente com o user root (não tenho a plena certeza sobre isso)

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem que comentar o bind adress dentro do my.cfg

e na tabela user do mysql no root voce utiliza % no host, considerando que voce utilizara o root para se conectar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não recomendo a utilização desse engine, já precisei fazer algo parecido e não deu certo. A não ser que vocês estejam trabalhando com tabelas pequenas, de 50.000 registros ou menos.

 

A lentidão é absurda.

 

Desculpe a duplicação do post.

 

Alan Allison,

 

Agora que eu lí, pelo que eu entendi, você vai fazer um site que vai se conectar a esse banco de dados remoto.

 

Creio que a solução seja simplesmente se conectar a esse banco de dados remotamente passando o endereço do banco para a sua aplicação, creio que não há necessidade de criar tabelas federated nesse caso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.