CONEXAO FUNCIONA EM WEB MAIS NAO FUNCIONA EM DESK

KURTGU 15/11/2015 19:28:59
#453935
Pessoal fiz uma aplicacao até ai tudo bem, tudo funcionando mais quando Tento fazer uma conexao via desk nao consigo acesso, mais fiz um aplicacacao php e o banco e funciona normalmente no browser, alguem sabe me dizer o por que disso?

[txt-color=#e80000]BANCO MYSQL[/txt-color]

A porta 3306 nao funciona na internet da empresa...Como a aplicacao web consegue acessar e a desk nao?

[txt-color=#e80000]O king host me informou que o erro e por causa da porta fechada...
[/txt-color]
a conexao php nem pede a porta...

CONEXAO FEITA EM PHP QUE FUNCIONA NORMALMENTE.

<?php
//set off all error for security purposes
error_reporting(E_ALL);

//define some contstant
define( [Ô]DB_DSN[Ô], [Ô]mysql:host=mysql.ceinfoparelheiros.kinghost.net;dbname=ceinfoparelhei[Ô] );
define( [Ô]DB_USERNAME[Ô], [Ô]ceinfoparelhei[Ô] );
define( [Ô]DB_PASSWORD[Ô], [Ô][Ô] );
define( [Ô]CLS_PATH[Ô], [Ô]class[Ô] );

//include the classes
include_once( CLS_PATH . [Ô]/user.php[Ô] );
?>
OCELOT 15/11/2015 20:14:31
#453937
O mais provável é que seu host não permita conexões remotas ao MySQL
NICKOSOFT 15/11/2015 20:16:15
#453938
essa pagina PHP roda em algum micro interno da empresa e acessa? então não é questão de porta fechada....se a pagina ta na web fora da empresa, ai pode até ser algo de porta mesmo...
se o banco tivesse em algum micro interno dependendo do serviço de internet seria necessário apenas um forward no servidor/roteador de internet apontando pro ip do pc onde estivesse o bd...

uso net aqui, e qnd preciso de algum teste do tipo e deixo o banco internamente no pc de desenvolvimento eu faco esses forward apontando ao IP do micro onde esta o BD e funciona normal....
KURTGU 15/11/2015 20:23:02
#453940
[txt-color=#e80000]Ocelot - O servidor funcionar normalmente na minha maquina em casa, ele tem permisao para acesso remoto.
[/txt-color]
O site ta no servidor alugado na kinghost.

Nao consigo nem acessar via HeideSql como estou fazendo em casa nesse momento...Minnha duvida e exatamente esta o por que consigo acessar um banco via php e nao consigo acessar este mesmo banco via Desktop Windows Form...





KERPLUNK 15/11/2015 20:23:23
#453941
Resposta escolhida
Se eu entendi o que você está dizendo, a explicação é muito simples, e se não me engano já tinha te passado isso em uma resposta anterior:
Você está rodando o seu código PHP na mesma rede em que o MySQL está instalado. Estando na mesma rede, as portas são geralmente liberadas. Agora, tentar acessar essa porta vindo de uma rede externa, então tem o firewall que barra. O PHP, está atrás do firewall, no mesmo nível do servidor MySQL e por isso acessa numa boa, sem nem especificar a porta pois 3306 é a porta padrão. Isso tudo não tem nada a haver com o PHP ou com o MySQL em si, mas sim com estrutura de rede, que é uma das coisas que quem quer trabalhar com web DEVE aprender.
KURTGU 15/11/2015 20:27:01
#453943
Entendi KerpLunk pelo motivo do Site esta no mesmo servidor ira funcionar, mais como tento o acesso via Windowsform o O sistema esta na maquina do usuario que conecta a internet e após isso conecta ao servidor se no meio disso estiver um parede(porta fechada) entao nao consigo o acesso.

Existe algum metodo, para burlar isso? Pois por ser a rede da prefeitura de SP Solicitei a abertura da porta 3306 no proxy a resposta foi que dentro de 6 meses estariam abrindo a porta lkkkkkkkk...
KERPLUNK 15/11/2015 20:34:35
#453944
Exatamente. Geralmente, é liberada uma porta para acesso externo que não é a porta padrão(e nem pode ser) e também criada uma entrada no NAT, direcionando o tráfego da porta externa, para a porta interna. Ou seja, o MySQL no servidor, está internamente na porta 3306, que é fechada para acesso externo. Então abre-se a uma porta digamos 9999 para acesso externo e o NAT faz o meio campo, transferindo os dados recebidos na porta externa, direcionando para a porta interna. Na prática, você se conecta de fora, na porta 9999, mas é transferido para a porta 3306 interna. Quando você roda o PHP que está já na rede interna, então esse acesso à porta externa não é necessário, pois o MySQL já está ao alcance. Poderia-se no PHP, configurar com o endereço e porta externa, mesmo estando de dentro da rede, a conexão iria ocorrer, mas não há necessidade disso. Em comparação, seria o mesmo que você estar em casa e querer dar uma mijada, daí sair de casa, chavear a porta, abrir a porta de novo e ir ao banheiro, não faria o menor sentido.
KURTGU 15/11/2015 20:35:11
#453945
Tem alguma Solucao para eu ultilizar esse banco na aplicacao Windows Form?
NICKOSOFT 15/11/2015 20:38:02
#453946
sim, restrição da rede da prefeitura.....encontro muito isso, dentro da escola temos pelo menos 3 tipos diferentes de perfil.......

veja q se entendi corretamente, de casa vc acessa, vc não tem a restrição da prefeitura.....
e o código php já foi bem explicado o motivo de funcionar sem problemas...
Tópico encerrado , respostas não são mais permitidas