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

rjcp

Como aceder a uma base de dados mysql remota?

16 mensagens neste tópico

Boa noite a todos.

Estou a desenvolver um projecto em C# com o VS2005 mas colocou-se-me um obstáculo na frente: Não consigo, através de uma Window Form, aceder à minha base de dados remota e listar o seu conteúdo numa datagrid.

Já tentei tudo e mais alguma coisa, já procurei aqui no fórum, inclusivé encontrei um post sobre como aceder facilmente a várias bases de dados através de uma API desenvolvida. Mas continuo na mesma... pois aparece sempre o mesmo erro independentemente do código que eu use, ou seja:

"An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)".

O programa "estoira" na linha conn.Open();  :wallbash:

Creio que tenho tudo bem configurado a nível do SQL Server 2005 (que continuo sem perceber qual a ligação entre este e o querer ligar-me a uma base de dados remota...).

Não sei se fui claro.

Agradeço toda a ajuda que puder ser disponibilizada  :D

Sem mais.

Ricardo Plácido

PS: Já descobri que fiz asneira e este tópico não devia ter sido colocado aqui mas sim em Dúvidas. Agradeço aos moderadores que o movam para lá. Peço desculpa pelo lapso.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Tópico movido! :D

Parece-me que o problema está no host a que te estás a ligar, ou seja, não aceita ligações remotas.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eheheh... o meu problema favorito aqui no p@p, vou dizer a solução mais uma vez:

saca um programazinho magnifico chamado putty.

Cria um tunnel ssh do teu computador de uma porta qualquer para o computador onde está o mysql na porta do mysql.

Depois de aberto o tunel liga-te ao teu computador ( localhost ) à porta local definida por ti.

Complicado?

http://www.google.se/search?hl=sv&client=firefox-a&rls=org.mozilla:en-US:official&hs=vIL&sa=X&oi=spell&resnum=0&ct=result&cd=1&q=mysql+remote+connection+putty+tunnel&spell=1

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado pelos esclarecimentos, mas continuo com uma dúvida. Esta Window Form será uma pequena aplicação para ser corrida em vários computadores que poderão usar a base de dados remota, à qual através de PHP consigo aceder sem problemas nenhuns...

Já agora outra questão. Depois da aplicação estar concluída é necessário que a pessoa que vá usa-la noutro pc que tenha também o putty para que a aplicação funcione?

Cumprimentos

Ricardo Plácido

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se a base de dados nao aceitar ligações remotas tens que criarum tunel ssh. No windows só usei o putty, não sei se há mais algum software que faça isso. É capaz de haver uma biblioteca C# que te permita abrires ligações SSH, não faço ideia, vindo da microsoft não espero muita coisa.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu devo ser muito burro ;) porque ainda não consegui fazer o que me foi explicado... no entanto, volto a esta parte mais tarde e vou desenvolver o resto pois tudo isto é independente para já...

Obrigado pelas repostas :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas afinal a BD é MySQL ou SQL Server 2005 ?

No titulo está uma coisa e depois falas noutra.

Para esclarecer também que esse tunel não funciona, pelo menos da forma como está no link do Triton. Esse tunel é na verdade um serviço local que faz forward. A diferença está apenas para o cliente que usa localhost.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu quero, através de um simples window form, aceder a uma base de dados mysql remota que está na empresa. Só isso. Esta pequena window form será uma simples aplicação compilada (em que também não é necessária a sua instalação, basta para tal correr o executável) que será colocada em vários computadores. Quero apenas descarregar informação da BD para a datagrid dessa window form. Nada mais que isto...

Como faço isso? É apenas esta a minha questão.

O SQL Server 2005 vem na sequência de eu tentar aceder ligar-me à BD da empresa e ser-me devolvido esse erro. É por isso nao percebo o que é que o SQL Server 2005 faz aqui.

Cumprimentos

Ricardo Plácido

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Alguém já leu bem o erro?

Ponto número 1: O título do tópico está errado já que queres ligar é a uma base de dados SQL Server e não mysql.

Ponto número 2: O erro diz que o servidor não aceita ligações remotas. O que significa que a única solução que vejo assim à partida é pedires ao administrador do servidor para permitir ligações remotas (e não apenas ligações locais), caso contrário, nada feito.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ponto número 1: Errado. Eu quero aceder a uma base de dados mysql remota.

Ponto número 2: Eu consigo aceder à base de dados da minha empresa através de PHP mas não consigo através de uma aplicação C#. Tão simples quanto isso.

O que eu acho é que estou a dar mal os comandos, pois ele chega a conn.Open(); e "estoira".

Alguém é capaz de me dar o código de uma window form com um simples botão e que ao carregar neste ele me diz se conseguiu ligação a uma base de dados MySQL?

Obrigado uma vez mais.

Cumprimentos

Ricardo Plácido

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Olhando para o erro que te dá eu diria que estás a tentar ligar-te como se fosse uma base de dados SQL Server 2005, ou seja, estás a usar a classe errada.

A API de que falaste é o EasyDB? É o que eu uso quando preciso de me ligar a bases de dados, e a maneira de usar é:

DBWrapper c = new DBWrapper(EasyDb.DatabaseType.Mysql);
c.DBServer="10.0.2.32";
c.DBUser="username";			
c.DBPassword="password";
c.Connect("nome_da_bd");

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim, era essa API a que eu estava a referir-me. Já agora, onde coloco esses ficheiros da API?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes colocá-los em qualquer sítio.

Partindo do princípio que estás a usar o Visual Studio, para que os ficheiros sejam copiados para a directoria do projecto escolhe a opção Copy Local (que se não me engano está algures nas propriedades - agora não tenho aqui o VS à mão).

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Agora sim. Está tudo a funcionar em pleno. Muito obrigado pelas ajudas ;)

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