2017-05-23 142 views
2

我正在與ServiceStack一起評估帶有MySql的ORMLite提供程序以便在.NET Core 1.1項目上使用。我遇到了一個奇怪的問題,我不確定問題出在哪裏,並尋找一些關於如何解決這些進一步問題或可能的解決方法的指導。MySql.Data.MySqlClient.MySqlException使用ServiceStack ORMLite

我在標準的docker容器中運行.Net Core應用程序,在標準的MySql容器中運行MySql。我已經能夠成功運行MySQL並與工作臺工具連接。

我不能做的是獲取Web應用程序的執行代碼,以成功連接到MySQL容器。我嘗試了各種組合。那些IP地址或主機名是錯誤的我收到一個有意義的錯誤,說主機是未知的。

但是,在服務器名稱或IP地址值使用適合MySQL容器的情況下,我收到一個通用的MySQLException錯誤。用戶名和密碼是正確的。我甚至使用root帳戶來確保沒有任何潛在的安全隱患。

這裏是我嘗試連接的地方的代碼片段。這個設置使用本地SQL數據庫文件運行良好,只是我缺少Docker或MySQL的配置,這些配置我都無法隔離。

const string connectionString = "Server=3400f112c973:3306;Database=ServiceDB;Uid=root;Pwd=my-secret-pw;"; 
     container.Register<IDbConnectionFactory>(
      new OrmLiteConnectionFactory(connectionString, MySqlDialect.Provider)); 

     using (var db = container.Resolve<IDbConnectionFactory>().Open()) 
     { 
      if (db.CreateTableIfNotExists<TypeExample>()) 
      { 
       //Add seed data 
      } 
     } 

回答

2

我已經想通了我的情況。

在MySQL連接字符串中,如果您使用的是非標準端口,則需要使用端口參數指定不同的端口,並在使用標準端口時完全省略端口。

我的問題是我一直在使用「服務器= servername端口;」這是不正確的格式,應該是「Server = servername; Port = port;」在我使用非標準端口號的情況下,否則Port =可以省略。

相關問題