Jump to content

Recommended Posts

Posted

Boas, tenho uma aplicação feita em c# e SQL Server que tenho que passar para uma base de dados MySQL, pois a base de dados SQL é local e pretendo que a aplicação funcione com o webserver.

O servidor da empresa tem a possibilidade de criar bases de dados e já a criei, igual à base de dados sql local.

Mas o problema é que deixou de funcionar... estou a ter o seguinte erro:

Citação

An unhandled exception of type 'MySql.Data.MySqlClient.MySqlException' occurred in MySql.Data.dll

A string de conexão é a seguinte:

<connectionStrings>
    <add name ="Servidor" connectionString="Server = xxx.xxx.xxx.xxx; Database=infogest; User Id=infogest; Password=xxxxxxx;"/>
  </connectionStrings>

Já adicionei ao projecto as referencias MySQL.Data e MySQL.Web.

Já substitui todos os comandos... por exemplo SQLCommand para MySQLCommand.

Alguém me consegue dar uma ideia do que pode estar mal? Ou como posso testar se a conexão está mesmo a funcionar?

Cumprimentos

Posted

Qual é a mensagem da exception? Porque MySqlException é o wrapper.

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Posted (edited)
Citação

An unhandled exception of type 'MySql.Data.MySqlClient.MySqlException' occurred in MySql.Data.dll

Additional information: Unable to connect to any of the specified MySQL hosts.

Entretanto mudei a conexão para a seguinte:
 

<add name ="Servidor" connectionString="Server = xxx.xxx.xxx.xxx:3306; Database=ogolhot16224com17082_infogest; User Id=ogolh_infogest; Password=xxxxxx;"/>

Mas continua a dar a mensagem a cima citada...

 

Não sei se terá alguma coisa a ver, mas depois de mudar a connectionstring passou a ser quase instantâneo a dar o erro... anteriormente demorava uns 10s.

Edited by D3POD
Acrescentar mais info
Posted

Já experimentaste "pingar" o endereço? Podes não estar a conseguir alcançá-lo da tua máquina.
Outra razão pode passar precisamente por o que o Knitter indicou. Alguns fornecedores de alojamento apenas permitem ligações provenientes do mesmo servidor/rede.

O teste do cliente MySQL iria provar precisamente se consegues ou não aceder ao servidor de uma máquina do exterior, pois trata-se de software testado e sem problemas nos conectores, como o teu pode ter.

Um cliente MySQL, neste caso, é um software que se liga à base de dados e a permite explorar. (é mais do que isso, mas para o efeito, serve esta explicação) 
Algo como https://www.navicat.com/download/navicat-premium

  • Vote 2

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Posted

Os alojamentos partilhados não permitem acesso externo ao MySQL a não ser que (se existir) actives esse acesso no área de administração do teu alojamento. Se for um CPanel, na secção de configurações de base de dados existe uma opção para configurar acessos remotos a MySQL, onde podes indicar o IP de origem (se for fixo) ou acesso permitido a qualquer cliente. Atenção que isto não faz mais que alterar as regras de firewall do teu alojamento para aceitar tráfego para o porto onde o MySQL está à escuta.

Para testar podes usar um programa genérico de acesso a MySQL, a que se chama "cliente" por ser... bem o cliente :)... é como o MS SQL Server Management Studio. Em Windows costumo usar o http://www.heidisql.com. Mas o MySQL Workbench também serve, ou o Navicat. Se conseguires que um destes se ligue e te deixe executar um SELECT directamente na BD então tens acesso e o problema estará na tua rede/aplicação, se não conseguires então não tens acesso ao servidor.

  • Vote 2
Posted
2 minutes ago, Knitter said:

Os alojamentos partilhados não permitem acesso externo ao MySQL a não ser que (se existir) actives esse acesso no área de administração do teu alojamento. 

Depende do fornecedor. A Amen, por exemplo, tem as DB acessíveis de fora por omissão.

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Posted

Pois, parece que o problema está mesmo na conexão.
Usei o aplicativo MySQL Workbench e quando faço testar conexão dá erro, portanto o problema não deve ter nada a ver com a minha aplicação, mas com a permissão de aceder no servidor.

 

Muito obrigado por toda a ajuda 😉

 

Cumprimentos

Posted
3 horas atrás, ribeiro55 disse:

Depende do fornecedor. A Amen, por exemplo, tem as DB acessíveis de fora por omissão.

Fica o reparo :), desconhecia que existisse algum que permitisse logo por omissão.

34 minutos atrás, D3POD disse:

Usei o aplicativo MySQL Workbench e quando faço testar conexão dá erro, portanto o problema não deve ter nada a ver com a minha aplicação, mas com a permissão de aceder no servidor.

Verifica as configurações todas e confirma que tanto o endereço do servidor (usa o domínio em vez do IP), como nome, porto e password está tudo a funcionar. A melhor opção é mesmo garantir que é possível aceder com um cliente genérico, porque se esse aceder a aplicação tem obrigação de aceder também.

  • Vote 1

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.