Banco de Dados [ReSoLvIdO]

Pessoal, estava procurando um host na web que aceitasse MySQL…

Axei um que chama steadywebs.com
Criei um banco de dados lá que chama androider_local e fui fazer a conexão, só para testar:

[code] public static void main(String[] args) throws ClassNotFoundException, SQLException {
Connection connection = null;

    String driverName = "org.gjt.mm.mysql.Driver";
    Class.forName(driverName);
    connection = DriverManager.getConnection("jdbc:mysql://steadywebs.com/androider_local", "androider_pepe", ""); //senha

}[/code]

Deu esse erro na linha do connection= …:
[color=red]Exception in thread “main” com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.[/color]

[color=red]Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure[/color]

Olha a print screen do site, vejam se tem algo errado

Pode ser que o banco não esteja setado na porta padrão (3306).

Att.

Passa a porta [3306]

[EDIT] - O Driver seta a porta padrão se não a informarmos ???

Achei esse nome de Driver meio estranho também… http://www.guj.com.br/articles/7

Abs []

[quote=Adelar]Pode ser que o banco não esteja setado na porta padrão (3306).

Att.[/quote]
Onde eu troco isso?

[quote=adriano_si]Passa a porta [3306]

[EDIT] - O Driver seta a porta padrão se não a informarmos ???

Achei esse nome de Driver meio estranho também… http://www.guj.com.br/articles/7

Abs [][/quote]
Sim, ele escolhe a porta padrão. Não conheço também este driver.

Att.

[quote=pedroroxd][quote=Adelar]Pode ser que o banco não esteja setado na porta padrão (3306).

Att.[/quote]
Onde eu troco isso?[/quote]
Seria isso na linha 6:

connection = DriverManager.getConnection("jdbc:mysql://steadywebs.com:3000/androider_local", "androider_pepe", ""); //senha 

Considerando que é a porta 3000.

[]'s.

[quote=adriano_si]Passa a porta [3306]

[EDIT] - O Driver seta a porta padrão se não a informarmos ???

Achei esse nome de Driver meio estranho também… http://www.guj.com.br/articles/7

Abs [][/quote]

Acredito que o nome do drive que vc está usando, está errado, troca por esse: com.mysql.jdbc.Driver

Outra coisa, tenta configurar com o IP(74.114.116.118) do servidor e não com o nome(steadywebs.com).

Trokei o nome do driver, não funcionou…
Colokei com IP 74.114.116.118, não funcionou…
Colokei porta :3000 com ip e com nome, e também não funcionou…

Vou passar a senha para vocês testarem ae, já que eu não uso o domínio pra nada:

[code] public static void main(String[] args) throws ClassNotFoundException, SQLException {
Connection connection = null;
Class.forName(“com.mysql.jdbc.Driver”); //org.gjt.mm.mysql.Driver
connection = DriverManager.getConnection(“jdbc:mysql://steadywebs.com:3000/androider_local”, “androider_androider”, “”);
System.out.println(“Conectou”);

    }[/code]

EDIT

A porta que passei era somente um exemplo. Me lembro que em uma vez que o MySQL trocou de versão houve alteração da porta em um dígito… tenta usar 3305 ou 3307 para ver se dá certo. Caso não dê certo verifique nas configurações do MySQL para confirmar qual porta é.

[]'s

Testei as 2 portas e não deu certo…

Procurei no phpmyadmin pra ver onde dava pra ver a porta e não consegui?
Pode me ajudar?

EDIT
Vlw!

Clica em “Variáveis e configurações do servidor” no parâmetro port está marcando a porta como 3306. Melhor remover do post anterior o usuário e senha antes que alguém acesse e cause danos.

Att.

Blz, vlw… Editei o post…
Então, já que está marcada porta 3,306 o que está dando erro??

(Nem tem como trocar a porta pelo jeito né?)

Connection connection = null; Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager.getConnection("jdbc:mysql://steadywebs.com/androider_local", "androider_androider", ""); System.out.println("Conectou");
Está tudo certo então…
A única coisa que não tenho certeza é se jdbc:mysql://steadywebs.com/ mesmo…
Onde vejo isso?

[quote=pedroroxd]Blz, vlw… Editei o post…
Então, já que está marcada porta 3,306 o que está dando erro??

(Nem tem como trocar a porta pelo jeito né?)

Connection connection = null; Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager.getConnection("jdbc:mysql://steadywebs.com/androider_local", "androider_androider", ""); System.out.println("Conectou");
Está tudo certo então…
A única coisa que não tenho certeza é se jdbc:mysql://steadywebs.com/ mesmo…
Onde vejo isso?[/quote]

To procurando aqui mas não to achando. Uma vez eu coloquei um site em PHP num servidor desse tipo, e se não me engano, na url do site tinha que passar também o usuario da conta. Da uma tentada.

Lá no site tá escrito assim:

Servidor: steadywebs.com (Localhost via UNIX socket)

Usuário: androider_androider@localhost

Esse localhost precisa colokar também??
Quando conecta pelo phpmyadmin não precisa nao… é só colocar androider_androider…
vlws

[quote=pedroroxd]Blz, vlw… Editei o post…
Então, já que está marcada porta 3,306 o que está dando erro??

(Nem tem como trocar a porta pelo jeito né?)

Connection connection = null; Class.forName("com.mysql.jdbc.Driver"); connection = DriverManager.getConnection("jdbc:mysql://steadywebs.com/androider_local", "androider_androider", ""); System.out.println("Conectou");
Está tudo certo então…
A única coisa que não tenho certeza é se jdbc:mysql://steadywebs.com/ mesmo…
Onde vejo isso?[/quote]
Isto depende do que o driver aceita e é mais ou menos padrão… acho que está certo. No caso “steadywebs.com” poderia ser também o IP da máquina. Caso necessite da porta daí esta é passada como “steadywebs.com:3306” ou se for pelo IP “192.168.0.1:3306”, por exemplo.

Vi que outra causa para este problema é que pode não estar configurado o acesso externo ao banco. Para isto tem que configurar nos arquivos do MySQL e reiniciar o banco. O servidor está em Linux, então segue um exemplo de como configurar o acesso neste caso… http://leandron.wordpress.com/2009/02/09/configurando-o-mysql-para-acesso-externo/.

[]'s

Isto aparece porque o servidor da aplicação PHP está rodando na mesma máquina que o servidor MySQL.

  • Acesse o arquivo /etc/mysql/my.cnf em seu editor preferido (vi, gedit, kate?) com um usuário que tenha permissões de escrita no arquivo
    sudo vim /etc/mysql/my.cnf

  • Localize a seguinte linha
    bind-address = 127.0.0.1

  • Altere a linha para
    # bind-address = 127.0.0.1

Reinicie o servidor MySQL
sudo /etc/init.d/mysql restart

Mas como que eu faço isso quando stá online?
Pelo phpmyadmin dá?

Achei que não dava pelo PhpAdmin, mas parece que dá tbm. Segue como fazê-lo http://wiki.locaweb.com.br/pt-br/Como_fa%C3%A7o_para_restringir_ou_liberar_IP_para_acesso_remoto_ao_phpMyAdmin%3F.

[]'s

“Clique em Usuários e Permissões;”

Não aparece isso lá não O_o

Tem outra maneira sem ser pelo por esse caminho?
Pq não achei nada que ta falando naquele site

[EDIT]

Ou melhor, alguém já usou um servidor que não dê isso?
To procurando um servidor free que aceite mysql e não dê esse pau…

Eu usava uolhost, e fazia a mesma coisa que estou fazendo e nunca deu problema, mas era pago… Alguém conhece um free??
Achei uma lista na internet enorme, mas nunca dá certo… A maioria é bloqueada para brasileiros, e outros é propaganda enganosa…