Jump to content
pluis3103

Ligação a base de dados SQL em outro PC

Recommended Posts

pluis3103

Boas pessoal,

A ideia é a seguinte: tenho uma base de dados alojada no meu pc em SQL Server e quero aceder a ela através de um site colocado num alojamento. Como posso fazer isto?

Se fosse local faria :

$myServer = "PL\\SQLEXPRESS";
$myUser = "username";
$myPass = "xxxx";
$myDB = "MinhaDB"; 

//create an instance of the  ADO connection object
$conn = new COM ("ADODB.Connection")
  or die("Cannot start ADO");

//define connection string, specify database driver
$connStr = "PROVIDER=SQLOLEDB;SERVER=".$myServer.";UID=".$myUser.";PWD=".$myPass.";DATABASE=".$myDB; 
  $conn->open($connStr); //Open the connection to the database

Tenho de saber o IP e o que altero para fazer a ligação??

Obrigado,

Paulo

Share this post


Link to post
Share on other sites
ruimcosta

Viva,

Tens de saber o ip. Como será dinamico, o melhor é configurares uma ligação dyndns.org que irá simular um ip fixo.

Em termos de código para ligares a uma sql remoto:

$host  = $ipssql.trim('\ ').$instanciassql.','.$portassql;
$user  = $utilssql;
$pw    = $senhassql;
$db    = $bdssql;

$conn = mssql_connect($host, $user, $pw) or die (utf8_encode("Erro ao ligar à Base de Dados. Por favor contacte o Administrador!"));
mssql_select_db($db, $conn);

Neste caso deves conseguir perceber o que representa cada variavel, pois os valores destas vem de uma base de dados mysql. Assim posso transportar para outros sites mudando apenas na BD.


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
pluis3103

Viva,

Tens de saber o ip. Como será dinamico, o melhor é configurares uma ligação dyndns.org que irá simular um ip fixo.

Em termos de código para ligares a uma sql remoto:

$host  = $ipssql.trim('\ ').$instanciassql.','.$portassql;
$user  = $utilssql;
$pw    = $senhassql;
$db    = $bdssql;

$conn = mssql_connect($host, $user, $pw) or die (utf8_encode("Erro ao ligar à Base de Dados. Por favor contacte o Administrador!"));
mssql_select_db($db, $conn);

Neste caso deves conseguir perceber o que representa cada variavel, pois os valores destas vem de uma base de dados mysql. Assim posso transportar para outros sites mudando apenas na BD.

Muito obrigado Rui,

Mais uma pergunta , além de configurar o sql server para ser acedido externamente preciso de abrir alguma porta no pc??

Share this post


Link to post
Share on other sites
ruimcosta

Quando instalas o sql server,  ele fica à escuta no porto 1433. Deves redireccionar no router, os pedidos para o porto 1433 para a tua máquina. Penso que estou correcto.


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
pluis3103

Quando instalas o sql server,  ele fica à escuta no porto 1433. Deves redireccionar no router, os pedidos para o porto 1433 para a tua máquina. Penso que estou correcto.

E o ip que ponho na conecção é o meu ip ou o do router?

Obrigado mais uma vez

Share this post


Link to post
Share on other sites
ruimcosta

tens ip fixo? se sim, colocas esse ip, senao, cria uma conta no dyndns.org e metes em vez do ip o endereço escolhido por ti.


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
pluis3103

tens ip fixo? se sim, colocas esse ip, senao, cria uma conta no dyndns.org e metes em vez do ip o endereço escolhido por ti.

E assim já não preciso redireccionar os pedidos no router ou tenho de o fazer na mesma?

Muito obrigado,

Share this post


Link to post
Share on other sites
ruimcosta

Tens sempre de o fazer, porque pela lógica, os pedidos chegam ao router, pq é a porta de entrada na tua rede, certo?

Depois do router podes ter uma panóplia de serviços/máquinas e o router é que tem de reencaminhar os pedidos, faz de porteiro!

Podes querer, por exempo, se chegar um pedido para o porto 80, que reencaminhe para o teu servidor web, que mostra o teu site, se chegar um pedido para o porto 1433, reencaminhe para outro servidor de sql server, etc, etc

Percebeste?


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
pluis3103

Tens sempre de o fazer, porque pela lógica, os pedidos chegam ao router, pq é a porta de entrada na tua rede, certo?

Depois do router podes ter uma panóplia de serviços/máquinas e o router é que tem de reencaminhar os pedidos, faz de porteiro!

Podes querer, por exempo, se chegar um pedido para o porto 80, que reencaminhe para o teu servidor web, que mostra o teu site, se chegar um pedido para o porto 1433, reencaminhe para outro servidor de sql server, etc, etc

Percebeste?

Percebido :D vou testar tudo,

muito obrigado...

Share this post


Link to post
Share on other sites
pluis3103

Percebido :thumbsup: vou testar tudo,

muito obrigado...

Viva Rui,

Depois da tua ajuda meti mãos à obra, só que não sabia que a função mssql_connect tem de estar a correr sobre windows ou o servidor linux tem de ter algo instalado como o TDS por exemplo.

Isto é correcto? Tu tens isto a funcionar em servidores linux?? tens algo a correr no servidor para permitir a ligação ao mssql?

Obrigado por tudo,

Cumprimentos,

Paulo

Share this post


Link to post
Share on other sites
ruimcosta

Procura no php.ini esta linha:

extension=php_mssql.dll

Retira o ; no início dessa linha


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites
pluis3103

Procura no php.ini esta linha:

Retira o ; no início dessa linha

Mas podes fazer isso num servidor Linux? No meu alojamento disseram que dll só em servidores windows ... Tens servidor próprio ou alojamento partilhado? windows ou linux ?

Cumprimentos,

Share this post


Link to post
Share on other sites
ruimcosta

Neste momento tenho a aplicação a correr num servidor partilhado com windows.


Abraços e beijinhos,Rui Costa

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.