• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

garfield

dúvida a ligar a uma base de dados num ip diferente

47 mensagens neste tópico

olá a todos :D

eu tenho uma base de dados num servidor e queria aceder através de um ip diferente, mas aparece "acesso negado" :P alguém sabe o que está acontecer para não dar?

o código php que eu tenho é este

...

// Efectua a conexão ao servidor

@$conexao=mysql_pconnect("195.00.00.000", "teste", "12345");

if (!$conexao) {

  echo 'Não foi efectuada a ligação. Tente de novo';

  exit;

}

//Escolher a base de dados pretendida

mysql_select_db('teste');

...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O MySQLd nesse servidor não está configurado para receber pedidos com esse IP.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

desde já obrigado pela resposta :D

sabes como é que posso fazer para configurar? eu não faço ideia de como é k isso se faz :P

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pois... vou então ver se descubro como é que posso configurar :P e mais uma vez obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

surgiu outra dúvida depois de conseguir configurar os privilégios da base de dados my sql.

(espero que esteja a por o post no sitio correcto, porque sou nova a utilizar foruns :-[ )

eu tenho este código em php para poder efectuar registo de um novo utilizador na base de dados que está no outro ip

<?php

// Permite às variáveis receber os valores introduzidos no formulário

$nome=$_POST["nome"];

$password=$_POST["password"];

//$_SESSION['nome']=$row['nome'];

$nome = trim($nome);

$password = trim($password);

$nome = addslashes($nome);

$password = addslashes($password);

// Efectua a conexão ao servidor

@$conexao=mysql_pconnect("194.000.00.000", "teste", "");

if (!$conexao) {

  echo 'Não foi efectuada a ligação. Tente de novo';

  exit;

}

//Escolher a base de dados pretendida

mysql_select_db('teste');

//Efectua consulta a base de dados

$result=mysql_query("SELECT * FROM utilizador WHERE nome='".$nome."' AND password='".$password."'");

$num_rows = mysql_num_rows($result);

if ($num_rows==1):

    echo session_id();

$_SESSION['nome']=$nome;

if(isset($_SESSION['nome'])){

echo "<br> Seja bem vindo ".$_SESSION['nome'];

}

echo "<br> <a href=\"verificarlogin.php\">  </a>";

else:

print " Login não é válido";

endif;

mas estão a aparecer estes erros

Warning: mysql_select_db() [function.mysql-select-db]: Access denied for user 'portugal'@'localhost' (using password: NO) in /home/portugal/public_html/teste/registar.php on line 39

Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /home/portugal/public_html/teste/registar.php on line 39

Warning: mysql_query() [function.mysql-query]: Access denied for user 'portugal'@'localhost' (using password: NO) in /home/portugal/public_html/teste/registar.php on line 42

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/portugal/public_html/teste/registar.php on line 42

Ocorreu um erro. Tente novamente o seu registo. Obrigado

Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in /home/portugal/public_html/teste/registar.php on line 52

mas se eu tiver a base de dados e o código php no mesmo servidor funciona correctamente, alguém sabe o que está a acontecer? (peço desculpa pelo tamanho :-[ do post)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que me quer parece é que estás  a ligar-te mal à base de dados. Isso deve precisar de password, e eu não a vejo lá.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já utilizei uma base de dados extra e utilizei este tipo de code

$conectar = mysql_connect('ip:porta', 'bd', 'pass');
if (!$conectar)
{
die('Não foi possível ligar à base de dados!');
}

resto do code

.
.
.

resto do code

mysql_close($conectar);}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que me quer parece é que estás  a ligar-te mal à base de dados. Isso deve precisar de password, e eu não a vejo lá.

no mySQL não é possível fazer uma ligação à base de dados sem password?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já utilizei uma base de dados extra e utilizei este tipo de code

$conectar = mysql_connect('ip:porta', 'bd', 'pass');
if (!$conectar)
{
die('Não foi possível ligar à base de dados!');
}

resto do code

.
.
.

resto do code

mysql_close($conectar);}

eu vou então experimentar colocar o ip e a porta, juntamente com a password.

desde já obrigado aos dois (tirácio e Neptune(o verdadeiro) ) pela ajuda;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

no mySQL não é possível fazer uma ligação à base de dados sem password?

Erm.. Só se está configurado sem password.. Senão era uma alegria ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Erm.. Só se está configurado sem password.. Senão era uma alegria :D

pois eu criei a base de dados mysql sem password, mas continuo a não conseguir aceder ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pois eu criei a base de dados mysql sem password, mas continuo a não conseguir aceder ;)

Estás a ligar-te pela porta certa? O IP é local? Tens o nome da BD certo? Que tipo de erro te é mostrado?

Para além disso não vejo porque não haverias de conseguir..

Pela via das dúvidas mostra-me o teu código actual (e não te esqueças de usar o Geshi! :D)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estás a ligar-te pela porta certa? O IP é local? Tens o nome da BD certo? Que tipo de erro te é mostrado?

Para além disso não vejo porque não haverias de conseguir..

Pela via das dúvidas mostra-me o teu código actual (e não te esqueças de usar o Geshi! :D)

desde já queria agradecer a ajuda  ;)

o código que tenho para a ligação é este

if ($password==$conf_password) {

  @$conexao=mysql_pconnect("194.110.00.000:3306", "teste", "");

if (!$conexao){

    echo "Não foi efectuada ligação. Tente de novo";

}

mysql_select_db('teste');

eu acho que a porta está correcta, a base de dados é a teste e não tenho password.

os erros são estes na mesma

Não foi efectuada ligação. Tente de novo

Warning: mysql_select_db() [function.mysql-select-db]: Access denied for user 'portugal'@'localhost' (using password: NO) in /home/portugal/public_html/teste/registar.php on line 39

Warning: mysql_select_db() [function.mysql-select-db]: A link to the server could not be established in /home/portugal/public_html/teste/registar.php on line 39

Warning: mysql_query() [function.mysql-query]: Access denied for user 'portugal'@'localhost' (using password: NO) in /home/portugal/public_html/teste/registar.php on line 42

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/portugal/public_html/teste/registar.php on line 42

Ocorreu um erro. Tente novamente o seu registo. Obrigado

Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in /home/portugal/public_html/teste/registar.php on line 52

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Adicionaste permissões nesse outro servidor de forma a permitir acesso "externo" a essa bd? Esse Access denied diz-me que não ;)

Ou isso, ou tem password e não sabes o.o (mas se dizes que não, leva-me à outra conclusão xP)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu adicionei as permissões no servidor onde tenho a base de dados para todos poderem aceder

já não entendo nada :wallbash: tenho que ver bem isso :-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Que passos seguiste para adicionar as permissões? :D

Para pessoas com menos experiência o cPanel faz milagres ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

pois o cpanel é um porreiro  :D, aqui na empresa existe apenas para um dos ips ;)

eu tentei seguir as indicações que me deram no forum neste link 

pelo José Lopes

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Na teoria isto seria suficiente:

ipconnect.JPG

Deste-lhe privilégios suficientes?

Embora seja estranho que na mesma não se conecte..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O.o

Hmm.. epah.. as conclusões que eu tiro são:

- Possivel typo no IP? É mesmo 194.110.00.000 ?

- A porta está aberta?

- Os 2 computadores fazem mesmo parte da mesma rede?

E um conselho.. não uses muito o mysql_pconnect ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O.o

Hmm.. epah.. as conclusões que eu tiro são:

- Possível typo no IP? É mesmo 194.110.00.000 ?

- A porta está aberta?

- Os 2 computadores fazem mesmo parte da mesma rede?

E um conselho.. não uses muito o mysql_pconnect :D

-não o ip correcto é 194.117.15.100 (mas é este que eu estou a colocar no php) mas eu para conseguir aceder ao phpMyAdmin tenho que colocar outro ip ( que pelo que me foi dito só funciona quando estou na mesma rede ;) )

-a porta está aberta

- os dois computadores não fazem parte da mesma rede

tens alguma sugestão melhor que o mysql_pconnect (é que eu não conheço outro) :-[

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu também não me consigo conectar-me a esse ip.. bem, escusas de pôr a porta o.o

Parece-me que não é necessário lol ;)

E bem.. Como é que tens o MySQL instalado exactamente nesse outro PC? De raiz?

E sim, o mysql_connect(), toma os mesmos parametros (server, username, password) como obrigatorios.

A diferença é que pelo mysql_pconnect tu tens uma ligação "persistente", ou seja, ele abre uma ligação que não se fecha, e depois quando se for ligar de novo, procura essa mesma ligação.

Eu recomendo o uso do mysql_connect() e quando já não necessitares mais de usá-la mysql_close() que toma por parâmetro a handle da ligação.

Porquê? Para não haver um "overflow" de ligações (é improvável, mas pronto, :D)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu também não me consigo conectar-me a esse ip.. bem, escusas de pôr a porta o.o

Parece-me que não é necessário lol :)

E bem.. Como é que tens o MySQL instalado exactamente nesse outro PC? De raiz?

E sim, o mysql_connect(), toma os mesmos parametros (server, username, password) como obrigatorios.

A diferença é que pelo mysql_pconnect tu tens uma ligação "persistente", ou seja, ele abre uma ligação que não se fecha, e depois quando se for ligar de novo, procura essa mesma ligação.

Eu recomendo o uso do mysql_connect() e quando já não necessitares mais de usá-la mysql_close() que toma por parâmetro a handle da ligação.

Porquê? Para não haver um "overflow" de ligações (é improvável, mas pronto, :))

Pois... eu nunca usei a porta com o ip, mas como trabalho com php à pouco tempo, ponho sempre todas as hipoteses :D

O  MySQL está instalado de raiz no servidor (que é outro pc).

obrigado pela ajuda e pela explicação/ sugestão em relação ao mysql_pconnect()  ;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois.

Perguntei isso porque como dizes, és nova na área, e talvez tivesses a usar o Wamp, o easyPHP, ou algo do género ;)

Epah, eu não vejo nada de mal no script, e se dizes que fizeste tudo como disseste..

Double check a configuração, etc.

Reinstala se necessário com uma configuração mais atenta..

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora