LAMP Acesso local e Externo

Iniciado por Anguz, 26 de Janeiro de 2015, 17:40

tópico anterior - próximo tópico

Anguz

Boa tarde, meu problema é o seguinte tenho um ubuntu server 14.04 rodando os serviços lamp, a bronca é seguinte quando tento rodar um script php que acessa uma base mysql externa da o seguinte erro.

Can't connect to MySQL server on 'mysql.megacall.com.br' (111)Não foi possível selecionar o banco de dados!

Ps: meu mysql local roda na porta 3308 e o externo roda na 3306.

zekkerj

Lembrou de autorizar o acesso no servidor?
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Anguz

Citação de: zekkerj online 26 de Janeiro de 2015, 17:44
Lembrou de autorizar o acesso no servidor?

Já testei todo tipo de liberação que consegui na internet, tu tens algo mais especifico?

Ps: tenho outro servidor só que é windows(xamp) e ta rodando o mesmo script sem problemas.

JuarezFranco

Ja liberou o mysql para permitir acesso externo?

aqui tem um exemplo
https://darkstrikerd.wordpress.com/2008/02/14/linux-permitindo-acesso-remoto-num-servidor-mysql/

pode mandar o script php que faz a conexão?
"Riem de mim por eu ser diferente, e eu rio de vocês por serem todos iguais." - Bob Marley

Anguz

Citação de: juarezfranco online 26 de Janeiro de 2015, 18:10
Ja liberou o mysql para permitir acesso externo?

aqui tem um exemplo
https://darkstrikerd.wordpress.com/2008/02/14/linux-permitindo-acesso-remoto-num-servidor-mysql/

pode mandar o script php que faz a conexão?

Já fiz essa liberação, consigo acessar remotamente o mysql que esta no ubuntu server normalmente,  o problema está quando tento rodar um script localizado no ubuntu server e a base de dados está nesse caso na kinghosting, ai dá aquele erro que postei.

irtigor

Citação de: Anguz online 26 de Janeiro de 2015, 17:55
Já testei todo tipo de liberação que consegui na internet, tu tens algo mais especifico?

Isso é vago. O que tentou?

Instale o mysql client e tente conectar do terminal, algo como

mysql --user=Usuário --password=Senha --host=Endereço --port=3306 nome_do_banco


Mostre o resultado.

Anguz

Citação de: irtigor online 26 de Janeiro de 2015, 18:32
Citação de: Anguz online 26 de Janeiro de 2015, 17:55
Já testei todo tipo de liberação que consegui na internet, tu tens algo mais especifico?

Isso é vago. O que tentou?

Instale o mysql client e tente conectar do terminal, algo como

mysql --user=Usuário --password=Senha --host=Endereço --port=3306 nome_do_banco


Mostre o resultado.

Segue o retorno.

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 15946994
Server version: 5.5.40-log Source distribution

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Anguz

Segue o retorno do php.

[Tue Jan 27 09:21:12.860381 2015] [:error] [pid 3615] [client 177.41.12.235:20265] PHP Warning:  mysql_select_db() expects parameter 2 to be resource, boolean given in /var/www/hiscred/higiniza_dem.php on line 20

zekkerj

#8
Teu erro parece ser na forma como vc está chamando a função do PHP. Talvez vc deva rever o código e/ou o manual da biblioteca.

Enquanto isso, instale o phpMyAdmin nessa máquina Ubuntu, e tente acessar o banco MySQL remoto com ele, usando o mesmo usuário/banco, pra ajudar a depurar o problema.
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

irtigor

Você conectou, então o problema tá no script. Versões diferentes do php? Bibliotecas instaladas?

Anguz

#10
Citação de: irtigor online 27 de Janeiro de 2015, 14:13
Você conectou, então o problema tá no script. Versões diferentes do php? Bibliotecas instaladas?

Esse é um script que eu fiz só pra testar a conexão com banco, segue o erro.

[pid 3939] [client 177.41.12.235:21453] PHP Warning:  mysql_connect(): Can't connect to MySQL server on 'mysql.megacall.com.br' (111) in /var/www/hiscred/higeteste.php on line 2[Tue Jan 27 11:18:08.329405 2015] [:error] [pid 3939] [client 177.41.12.235:21453] PHP Warning:  mysql_connect(): Can't connect to MySQL server on 'mysql.megacall.com.br' (111) in /var/www/hiscred/higeteste.php on line 2

Segue o código que da o erro acima.

<?php
$link = mysql_connect('www.xxxx.com.br', 'user', 'senha');
if (!$link) {
    die('Not connected : ' . mysql_error());
}

// make foo the current db
$db_selected = mysql_select_db('megacall01', $link);
if (!$db_selected) {
    die ('Can\'t use megacall01 : ' . mysql_error());
}
?>




zekkerj

Tente conectar via telnet ao servidor na linha de comandos, pra saber se não há alguma coisa impedindo a conectividade.

telnet mysql.megacall.com.br 3306
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D

Anguz

Citação de: zekkerj online 27 de Janeiro de 2015, 15:18
Tente conectar via telnet ao servidor na linha de comandos, pra saber se não há alguma coisa impedindo a conectividade.

telnet mysql.megacall.com.br 3306

Retorna:

telnet mysql.megacall.com.br 3306
Trying 177.12.161.24...
Connected to mysql.megacall.com.br.
Escape character is '^]'.
N
5.5.40-logZ▒▒LXSv|*Z▒r*xAzdfUS"MAmysql_native_passwordConnection closed by foreign host.

irtigor

Fora a porta que você não especificou, tem mais algum script rodando com os mesmos parâmetros desse mysql_connect? Se tiver coloque new_link=True.

Nota: prefira o MySQLi ou PDO_MySQL http://php.net/manual/en/function.mysql-connect.php

JuarezFranco

Eu aconselho a fazer comunicação com a classe PDO.


//Constantes para conexão com Servidor
define("PORT","3308");//3306 a padrao
define("DB","database"); //nome do banco de dados
define("END","endereco");//não aconselho  a vc publicar seu endereco para acesso externo do mysql como vc publicou. fica a dica.
define("USER","root");//usuario com permissao para acesso externo
define("PASS","senha");//senha


/*Cria conexão*/
function getConexao(){
$conn = new PDO( 'mysql:host='.END.';port='.PORT.';dbname='.DB.';charset=utf8',USER,PASS);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

return $conn;
}


aqui segue um link com um bom tutorial

http://www.devmedia.com.br/como-conectar-mysql-com-php-via-pdo/30317

Eu faço assim.
"Riem de mim por eu ser diferente, e eu rio de vocês por serem todos iguais." - Bob Marley