Ir para conteúdo

POWERED BY:

Arquivado

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

cassiano óliver

Replicação entre base de dados

Recommended Posts

Olá pessoal,

 

Preciso disponibilizar a um outro site B, o acesso às notícias do site A.

 

Pensei em fazer a replicação de uma tabela1 do BD1 para tabela2 do BD2 como posso realizar esta operação?

 

Pesquisei, e encontrei soluções, porém para tabelas da mesma BASE DE DADOS.

 

É possível ter um usuário no MySQL com permissão de consulta / deleção há apenas uma tabela do banco?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tente assim:

GRANT SELECT ON `SUA BANCO DE DADOS`.`SUA TABELA` TO  'USUARIO'@'SEUHOST';

 

Espero que ajude.

 

[editado]

Se tiver dificuldades poste que te explico como fazer por phpmyadmin

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi. Consegui fazer localmente, porém o servidor não permite criar outros usuários.

 

E quanto há replicar de um banco para outro, há alguma forma recomendada de se fazer?

 

Eu pensei o seguinte: Criar uma rotina para criar um backup SQL da tabela do BD 1 e outra rotina para importar os dados para o BD2.

 

Ainda localmente, consegui copiar os registros de uma tabela para outra da outra base de dados.

 

INSERT INTO replicacao1.noticias (titulo) SELECT titulo FROM replicacao.noticias;

 

Problemas:

1) Localmente, tenho apenas 1 usuário. No servidor, para cada banco é utilizado um usuário como poderei fazer a rotina acima nesta situação?

 

2) Os registros se já existentes na 2ª tabela são inseridos novamente, causando duplicidade, como evitar isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas ambos sites estão no mesmo servidor(na sua hospedagem, tipo revenda)?

 

2) Os registros se já existentes na 2ª tabela são inseridos novamente, causando duplicidade, como evitar isso?

Você usa IDs nas linhas? Se sim, use a ID como TOKEN, ambos bancos devem seguir os mesmos dados.

 

Se não tiver como, você poderia criar uma "rotina" que verifique os dados e acaso exista algo diferente, use o UPDATE.

 

Como ultima alternativa, seria legal criar uma "API", disponibilizar um XML ou um SERIALIZE (http://php.net/manual/pt_BR/function.serialize.php) das noticias do site A e o site B pegaria as noticias sem necessidade de BANCO DE DADOS.

Compartilhar este post


Link para o post
Compartilhar em outros sites

As tabelas que manipularei são do mesmo servidor, porém em bancos diferentes.

 

NOTICIAS A em SERVIDOR 1

NOTICIAS B em SERVIDOR 1

 

Penso em meia e meia hora, replicar as notícias de A para B.

O outro site (servidor diferente) deverá pegar as notícias da NOTICIAS B. O usuário terá apenas permissão de consulta nesta tabela. Esta parte de criar o usuário e dar esta permissão, já consegui.

 

O que ainda está pendente, é a cópia da notícias de A para B.

Seguindo sua sugestão do ID, como faço para inserir a "regra" na consulta?

Tentei assim, porém não vai...

 

INSERT INTO replicacao1.noticias (titulo) SELECT titulo FROM replicacao.noticias WHERE replicacao.noticias.id != replicacao1.noticias.id;

Compartilhar este post


Link para o post
Compartilhar em outros sites
O que ainda está pendente, é a cópia da notícias de A para B.

Seguindo sua sugestão do ID, como faço para inserir a "regra" na consulta?

Tentei assim, porém não vai...

A maneira que você quer seria melhor criar um algorítimo com a linguagem de programação que você usa, acredito que seja PHP.

 

Você também pode excluir(apenas os registros) da tabela e clonar os dados da A para a B:

 

TRUNCATE TABLE [TABELA DO BANCO B];
INSERT INTO [TABELA DO BANCO B] SELECT * FROM [TABELA DO BANCO A] WHERE 1;

 

Testei e funcionou perfeitamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum...

Entendi, não havia pensado nisso.

Afinal, após os dados serem importados para o outro banco (externo) não há necessidade de mantermos os dados no nosso.

 

Muito obrigado pela sugestão.

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.