2017-10-19 10 views
3

J'essaie actuellement de migrer des machines virtuelles aux conteneurs Windows Docker. Les conteneurs sont hébergés sur un Windows Server 2016 Datacenter. Le système d'exploitation est installé sur un ordinateur racine physique hébergé par Hetzner. My Docker Containers contient une application de console, écrite en C#, exécutant des mises à jour sur une base de données MariaDB, hébergée dans google-cloud. Avant chaque application de console s'exécutait dans une machine virtuelle séparée avec son propre ip4. Maintenant, ils s'exécutent dans un conteneur et obtiennent l'exception suivantePlusieurs connexions Mysql à partir de Docker -> Erreur de socket

Unhandled Exception: System.TypeInitializationException: The type initializer for 'A.C' threw an exception. ---> MySql.Data.MySqlClient.MySqlException: Authentication to host '##.##.##.##' for user '####' using 
method 'mysql_native_password' failed with message: Reading from the stream has failed. ---> MySql.Data.MySqlClient.MySqlException: Reading from the stream has failed. ---> System.IO.EndOfStreamException: 
Attempted to read past the end of the stream. 
    at MySql.Data.MySqlClient.MySqlStream.ReadFully(Stream stream, Byte[] buffer, Int32 offset, Int32 count) 
    at MySql.Data.MySqlClient.MySqlStream.LoadPacket() 
    --- End of inner exception stack trace --- 
    at MySql.Data.MySqlClient.MySqlStream.LoadPacket() 
    at MySql.Data.MySqlClient.MySqlStream.ReadPacket() 
    at MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.ReadPacket() 
    --- End of inner exception stack trace --- 
    at MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.AuthenticationFailed(Exception ex) 
    at MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.ReadPacket() 
    at MySql.Data.MySqlClient.Authentication.MySqlAuthenticationPlugin.Authenticate(Boolean reset) 
    at MySql.Data.MySqlClient.NativeDriver.Authenticate(String authMethod, Boolean reset) 
    at MySql.Data.MySqlClient.NativeDriver.Open() 
    at MySql.Data.MySqlClient.Driver.Open() 
    at MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings) 
    at MySql.Data.MySqlClient.MySqlPool.CreateNewPooledConnection() 
    at MySql.Data.MySqlClient.MySqlPool.GetPooledConnection() 
    at MySql.Data.MySqlClient.MySqlPool.TryToGetDriver() 
    at MySql.Data.MySqlClient.MySqlPool.GetConnection() 
    at MySql.Data.MySqlClient.MySqlConnection.Open() 
    at ServiceStack.OrmLite.OrmLiteConnection.Open() 
    at ServiceStack.OrmLite.OrmLiteConnectionFactory.OpenDbConnection() 
    at A.C.b() 
    at A.C..cctor() 
    --- End of inner exception stack trace --- 
    at A.C.A() 
    at A.b..ctor() 
    at A.a.A() 
    at A.d.A(String[]) 
    at A.d.a[A](String[]) 
    at A.A.A(String[]) 

Docker utilise un réseau NAT. Par conséquent, je pense qu'il y a un problème avec la connexion en ce qui concerne les connexions multiples de la même adresse IP.

Est-ce que quelqu'un d'entre vous a eu une expérience semblable ou sait comment résoudre ce problème? Im un peu coincé et heureux pour toute aide. Merci d'avance.

Si vous avez d'autres questions concernant mon installation ou toute autre chose s'il vous plaît faites le moi savoir.

Cordialement Michael

Répondre

0

Cela semble être un problème commun dans MySql.Data; voir le commentaire de Rui Fan à la fin de bug 76597 pour une solution de contournement potentielle.