Cześć.
Mam problem z połączeniem się z bazą MySQL znajdującą się na moim VPS. Zainstalowałem MySQL Entity Framework Stworzyłem Context jednak przy uruchomieniu dostaję błąd że host nie odpowiedział :
Unhandled exception. MySql.Data.MySqlClient.MySqlException (0x80004005): Reading from the stream has failed.
---> System.IO.IOException: Unable to read data from the transport connection: Próba połączenia nie powiodła się, ponieważ połączona strona nie odpowiedziała poprawnie po ustalonym okresie czasu lub utworzone połączenie nie powiodło się, ponieważ połączony host nie odpowiedział..
---> System.Net.Sockets.SocketException (10060): Próba połączenia nie powiodła się, ponieważ połączona strona nie odpowiedziała poprawnie po ustalonym okresie czasu lub utworzone połączenie nie powiodło się, ponieważ połączony host nie odpowiedział.
Tak wygląda mój Context gdzie oczywiście w miejscu 147.135.xxx.xxx jest IP mojego VPS
using Microsoft.EntityFrameworkCore;
public class AppContext : DbContext{
DbSet<Product> Products {get;set;}
DbSet<User> Users {get;set;}
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseMySQL("SERVER=147.135.xxx.xxx;PORT=22;database=Company;UID=root;PASSWORD=password");
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<User>(entity =>
{
entity.HasKey(e => e.Email);
entity.Property(e => e.Email).IsRequired();
entity.Property(e => e.Password).IsRequired();
});
modelBuilder.Entity<Product>(entity =>
{
entity.HasKey(e => e.Id);
entity.Property(e => e.ProductName).IsRequired();
entity.Property(e => e.Price).IsRequired();
});
}
}
Kiedy łączę się z bazą poprzez MySQL Workbench i SSH problemu nie ma więc problemu ze strony serwera raczej nie widzę.
Poniżej łączenie za pomocą SSH(zmienione IP :D )
Czy problemem jest zły connection string w metodzie OnConfiguring ? Czy trzeba budować jakiś tunel poprzez łączenie przez SSH ? Tylko jak to zrobić używając Entity Framework.
Ps : Z paczek jakie mam zainstalowane to tylko MySql.Data.EntityFrameworkCore nic więcej.