O phpMyAdmin pode ser usado para conectar-se a um banco de dados remoto?

3

Eu recentemente leia este tutorial , que explica como é fácil reconfigurar uma instalação local do phpMyAdmin para conectar-se a um controle remoto base de dados. A funcionalidade parece ser suportada, mas não ativada por padrão. Eu segui o tutorial, mas quando tento me conectar ao host remoto, a validação falha.

Alguém me explicou nos comentários de uma questão relacionada que o login do MySQL tem o formato username@IPAddress . O banco de dados remoto espera username@remotemachineIP , enquanto o phpMyAdmin envia username@mylocalIP .

Se ele está certo sobre isso, então isso poderia ser o meu problema. Isso é confuso, porque o artigo não menciona isso.

  1. Posso realmente me conectar ao servidor remoto (hospedado em um Amazon EC2) com o phpMyAdmin?

  2. Este poderia ser o verdadeiro problema em minha tentativa de conexão?

  3. Se sim, como posso resolvê-lo?

por Der Hochstapler 27.04.2014 / 22:31

2 respostas

1

O phpMyAdmin pode se conectar a um banco de dados remoto apenas configurando-o com o host, usuário e senha da máquina remota. Enquanto a porta do MySQL estiver aberta no host, o MySQL rodando lá está configurado para permitir conexões de rede, e seu usuário tem permissão para estar conectado remotamente.

Na máquina rodando o phpMyAdmin ou qualquer outra máquina (não o servidor MySQL), execute o cliente da linha de comando para testar se a conexão é possível:

$ mysql -h<ip> -u<user> -p<password> <database>

Onde ip é o IP do servidor MySQL, database é o nome do seu banco de dados e user e password são as credenciais do usuário no MySQL. Isso deve lhe dar o prompt do cliente mysql no sucesso. Ou uma descrição adequada do erro.

UPDATE

O servidor MySQL geralmente é configurado para escutar apenas um soquete local. Não liga a porta TCP 3306 por padrão. Para configurá-lo corretamente, você precisa editar o arquivo de configuração do servidor (geralmente /etc/my.cnf)

[mysqld]
bind-address            = 10.0.0.5

Você tem que substituir o IP neste exemplo pelo endereço IP do seu servidor. E você tem que verificar que a opção "skip-networking" não está ativada. Porque isso impediria a ligação do MySQL ao IP configurado.

Após a reinicialização, você pode verificar se o MySQL está escutando com este comando no shell de um servidor:

# netstat -nap | grep mysqld
tcp        0      0 10.0.0.5:3306                0.0.0.0:*                   LISTEN      3547/mysqld
unix  2      [ ACC ]     STREAM     LISTENING     13554  3547/mysqld         /var/lib/mysql/mysql.sock

Você precisa ver uma linha como a primeira saída aqui. O número 3306 é a porta padrão do MySQL e você precisa abri-lo para conexões TCP de entrada, se tiver um firewall protegendo o servidor.

Depois disso, você poderá se conectar ao MySQL. Mas ainda assim você pode ter problemas ao efetuar login se suas permissões não estiverem definidas corretamente. Os usuários do MySQL possuem nome de usuário e host no formato user @ host, portanto, se você criar um usuário my_user @ localhost e tentar efetuar login de qualquer coisa diferente de localhost, o acesso será negado. Vamos supor que seu cliente esteja executando uma máquina com o endereço IP 10.0.0.33 e você queira dar permissão para acessar um banco de dados. Seu usuário deve ser [email protected] ou my_user @% sendo o segundo um usuário irrestrito para conexão de qualquer máquina. O que é melhor evitar se você souber de antemão o IP do seu cliente.

    
por 27.04.2014 / 23:50
0

Você tem que permitir que o usuário mysql efetue login a partir da máquina remota. Para o efeito, no servidor mysql você tem que executar o seguinte comando: * GRANT ALL PRIVILEGES ON . PARA 'NOME DE USUÁRIO' @ '%' IDENTIFICADO POR 'SENHA' *

Mais sobre você tem que desabilitar a ligação IP no servidor mysql editando o arquivo de configuração

    
por 14.11.2015 / 19:27