D3POD Posted September 28, 2016 at 11:32 AM Report #599196 Posted September 28, 2016 at 11:32 AM 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
ribeiro55 Posted September 28, 2016 at 11:57 AM Report #599197 Posted September 28, 2016 at 11:57 AM 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"
D3POD Posted September 28, 2016 at 12:34 PM Author Report #599199 Posted September 28, 2016 at 12:34 PM (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 September 28, 2016 at 12:35 PM by D3POD Acrescentar mais info
Knitter Posted September 28, 2016 at 01:09 PM Report #599200 Posted September 28, 2016 at 01:09 PM E o servidor está configurado para permitir ligações externas ao MySQL? Consegues aceder com um cliente MySQL para testar? Isso é um servidor dedicado ou um alojamento partilhado? 1 Report
D3POD Posted September 28, 2016 at 02:59 PM Author Report #599204 Posted September 28, 2016 at 02:59 PM É um alojamento partilhado... onde tenho o website da empresa, email, etc Não percebi o que queria dizer com cliente MySQL...
ribeiro55 Posted September 28, 2016 at 03:12 PM Report #599205 Posted September 28, 2016 at 03:12 PM 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 2 Report 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"
Knitter Posted September 28, 2016 at 03:48 PM Report #599206 Posted September 28, 2016 at 03:48 PM 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. 2 Report
ribeiro55 Posted September 28, 2016 at 03:52 PM Report #599207 Posted September 28, 2016 at 03:52 PM 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"
D3POD Posted September 28, 2016 at 06:35 PM Author Report #599210 Posted September 28, 2016 at 06:35 PM 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
Knitter Posted September 28, 2016 at 07:11 PM Report #599211 Posted September 28, 2016 at 07:11 PM 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. 1 Report
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now