Olá,
Estou desenvolvendo um projeto em C# e preciso conectá-lo em um banco de dados externo (online), no processo do desenvolvimento utilizei um banco de dados local (Wampserver64) e funciona perfeitamente.
Descobri um site que disponibilizada essa funcionalidade de banco online (https://www.db4free.net/), mas não estou conseguindo conectar pelo Visual Studio.
Para a conexão local, utilizei o seguinte comando:
“SERVER=localhost; DATABASE=nutricao; UID=root; PASSWORD=;”
Para a conexão externa estou utilizando o comando:
“SERVER=link_servidor; DATABASE=nutricao; UID=root_nutricao; PASSWORD=**;”
Testei a conexão em uma pagina PHP, com os mesmo dados e a conexão foi estabelecida:
$servidor = ‘link_servidor’;
$banco_de_dados = ‘nutricao’;
$usuario = ‘root_nutricao’;
$senha = ‘****’;
$conexao = mysqli_connect($servidor, $usuario, $senha, $banco_de_dados) or die (“Erro ao conectar”);
link do servidor conexão externa: www.db4free.net (Sou unário novo e posso colocar apenas dois links na potagem)
Eu necessito realizar alguma configuração no projeto para conseguir realizar essa conexão?
Se não tiver a mensagem de erro fica mais difícil alguém ajudar.
Boa tarde,
Mas a mensagem de erro é a que eu defino na programação.
Programação:
conn = new MySqlConnection(StringConexao);
try
{
conn.Open();
}
catch (Exception)
{
if (MessageBox.Show("Não foi possivel conectar ao Banco de Dados! Verifique sua Conexão!\nTentar conectar novamente?!", "Erro!", MessageBoxButtons.YesNo, MessageBoxIcon.Error) == DialogResult.Yes)
{
AbreBanco();
}
else
{
Application.Exit();
}
}
Retira esse try catch. Além de sujar o código, está escondendo a mensagem de erro real e stacktrace que te ajudaria a resolver o problema.
Ideal sao as mensagens de erro irem para algum gerenciador automático de logs, mas isso é outro assunto.
Perfeito, retirei o try catch e retornou a seguinte mensagem:
MySql.Data.MySqlClient.MySqlException
HResult=0x80004005
Message=Reading from the stream has failed.
Source=MySql.Data
StackTrace:
em MySql.Data.MySqlClient.MySqlStream.LoadPacket()
em MySql.Data.MySqlClient.MySqlStream.ReadPacket()
em MySql.Data.MySqlClient.NativeDriver.Open()
em MySql.Data.MySqlClient.Driver.Open()
em MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings)
em MySql.Data.MySqlClient.MySqlConnection.Open()
em NTC.Classes.bancodados.AbreBanco() em C:\Users\informatica3-btu\source\repos\NTC\NTC\Classes\bancodados.cs:linha 36
em NTC.Login.Login_Load(Object sender, EventArgs e) em C:\Users\informatica3-btu\source\repos\NTC\NTC\Login.cs:linha 20
em System.Windows.Forms.Form.OnLoad(EventArgs e)
em System.Windows.Forms.Form.OnCreateControl()
em System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
em System.Windows.Forms.Control.CreateControl()
em System.Windows.Forms.Control.WmShowWindow(Message& m)
em System.Windows.Forms.Control.WndProc(Message& m)
em System.Windows.Forms.ScrollableControl.WndProc(Message& m)
em System.Windows.Forms.Form.WmShowWindow(Message& m)
em System.Windows.Forms.Form.WndProc(Message& m)
em System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
em System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
em System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Esta exceção foi gerada originalmente nesta pilha de chamadas:
System.Net.Sockets.Socket.Receive(byte[], int, int, System.Net.Sockets.SocketFlags)
System.Net.Sockets.NetworkStream.Read(byte[], int, int)
Exceção interna 1:
IOException: Não é possível ler os dados da conexão de transporte: Uma tentativa de conexão falhou porque o componente conectado não respondeu
corretamente após um período de tempo ou a conexão estabelecida falhou
porque o host conectado não respondeu.
Exceção interna 2:
SocketException: Uma tentativa de conexão falhou porque o componente conectado não respondeu
corretamente após um período de tempo ou a conexão estabelecida falhou
porque o host conectado não respondeu
Na mesma máquina que está esse Visual Studio voce consegue conectar nesse server através do MySql Workbench?
Cara, descobri o que estava acontecendo… esse erro que eu mandei acontece devido a uma instabilidade no servidor db4free, outro erro que foi apresentava era solicitando a porta para a conexão.
Só adicionei a porta 3306 na linha de conexão e conectou.
Obrigado pela ajuda!!