Array de Bancos de Dados com PHP [RESOLVIDO]

1. Array de Bancos de Dados com PHP [RESOLVIDO]

Caio Anderson
oomaikoo

(usa Ubuntu)

Enviado em 28/09/2016 - 13:34h

Galera boa tarde, estou com uma dúvida tenho 102 servidores de banco de dados MYSQL diferentes porém com a mesma estrutura, tabelas iguais, tudo.

como faço um array com conexão aos 102 servidores e por exemplo: rodar um comando ALTER TABLE que altere a tabela nos 102 bancos de uma só vez, é possível ?


  


2. MELHOR RESPOSTA

thinomar
thinomar

(usa Linux Mint)

Enviado em 30/09/2016 - 10:41h

Ou você usa o operador lógico "or" e chama o comando ou função que quer caso dê errado ou processa isso depois de conectar tudo...
Exemplo com "or" (apenas imprimindo na tela as conexões que falharam):
$conexao = array();
$conexao[] = mysqli_connect(DB_HOST1, DB_USER1, DB_PASS1, DB_NAME1) or echo sprintf("Erro ao conectar em host %s", DB_HOST1);
$conexao[] = mysqli_connect(DB_HOST2, DB_USER2, DB_PASS2, DB_NAME2) or echo sprintf("Erro ao conectar em host %s", DB_HOST2);
$conexao[] = mysqli_connect(DB_HOST3, DB_USER2, DB_PASS3, DB_NAME3) or echo sprintf("Erro ao conectar em host %s", DB_HOST3);

Exemplo processando depois:
$conexao = array();
$conexao[] = mysqli_connect(DB_HOST1, DB_USER1, DB_PASS1, DB_NAME1);
$conexao[] = mysqli_connect(DB_HOST2, DB_USER2, DB_PASS2, DB_NAME2);
$conexao[] = mysqli_connect(DB_HOST3, DB_USER2, DB_PASS3, DB_NAME3);

foreach($conexao as $c){
if(!$c){
echo "Conexão falhou!";
}
}

Aliás, há formas mais limpas de fazer as conexões. Ao invés de fazer todas na mão, uma a uma, você pode salvar as credenciais em um arquivo e fazer as conexões por meio de um laço...


3. Re: Array de Bancos de Dados com PHP [RESOLVIDO]

Fabiano
fpires

(usa Debian)

Enviado em 29/09/2016 - 10:28h

São 120 servidores diferentes ou 120 databases diferentes no mesmo servidor? De qualquer forma, eu faria um script em bash (utilizando o comando "mysql -e " , que executa comandos SQL) ou mesmo em PHP (utilizando as bibliotecas adequadas)


4. Re: Array de Bancos de Dados com PHP [RESOLVIDO]

Caio Anderson
oomaikoo

(usa Ubuntu)

Enviado em 29/09/2016 - 17:26h

São 102 servidores DIFERENTES , porém os mesmos dados, me da uma luz ai como ficaria a conexão exemplo com 3 servidores simultaneos


5. Re: Array de Bancos de Dados com PHP

thinomar
thinomar

(usa Linux Mint)

Enviado em 29/09/2016 - 17:42h

Pra conectar vai ter que ser na mão mesmo, já que, como são servidores diferentes, as credenciais são diferentes. Mas... eu criaria um array de conexões. Exemplo (procedural):
$conexao = array();
$conexao[] = mysqli_connect(DB_HOST1, DB_USER1, DB_PASS1, DB_NAME1);
$conexao[] = mysqli_connect(DB_HOST2, DB_USER2, DB_PASS2, DB_NAME2);
$conexao[] = mysqli_connect(DB_HOST3, DB_USER2, DB_PASS3, DB_NAME3);
...
$conexao[] = mysqli_connect(DB_HOSTN, DB_USERN, DB_PASSN, DB_NAMEN);

Depois disso, como a estrutura do db de todas as máquinas é igual, executaria a query em todas usando um laço. Exemplo:
$query = "MINHAQUERY";
$resultado = array();
foreach($conexao as $c){
$resultado[] = mysqli_query($c, $query);
}


P.s.: Se você tivesse as credenciais em algum arquivo ou em uma db, você poderia realizar as conexões apenas com um laço, utilizando esses dados, ao invés de fazer todas as conexões na mão.


6. Re: Array de Bancos de Dados com PHP [RESOLVIDO]

Caio Anderson
oomaikoo

(usa Ubuntu)

Enviado em 29/09/2016 - 19:29h

Entendi a parte do Array vou fazer na mão mesmo os 102 servidores
$conexao = array();
$conexao[] = mysqli_connect(DB_HOST1, DB_USER1, DB_PASS1, DB_NAME1);
$conexao[] = mysqli_connect(DB_HOST2, DB_USER2, DB_PASS2, DB_NAME2);
$conexao[] = mysqli_connect(DB_HOST3, DB_USER2, DB_PASS3, DB_NAME3);


Mas após esse código como eu faço uma consulta pra saber se todas as conexões foram efetuadas com sucesso?


7. Re: Array de Bancos de Dados com PHP [RESOLVIDO]

Caio Anderson
oomaikoo

(usa Ubuntu)

Enviado em 30/09/2016 - 16:24h

É isso mesmo, funcionou perfeitamente, Obrigado galera !!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts