【问题标题】:Issue reconnecting ASP.NET MVC app to moved MySQL database连接 ASP.NET MVC 应用程序以移动 MySQL 数据库的问题
【发布时间】:2018-06-26 07:56:08
【问题描述】:

我正在维护在 Azure 中运行的旧版 ASP.NET MVC3 Web 应用程序。该应用程序连接到即将因年老而死的 MySQL 本地服务器(版本 5.1.44)......因此 dba 正在准备迁移到更新的服务器并准备了数据库的测试实例。所以你会认为只有连接字符串需要更改,对吧?

嗯,看来这并不容易。重要的是要知道;通过实体框架(版本 4.4.0.0)访问数据库。我正在为 MySQL 使用 6.9.9.0 版的 MySql.Data ADO.Net 驱动程序。 MySQL.Data.Entity 的版本相同。当时,选择了“数据库优先”的方法,这让我在其他方面感到痛苦(我正在努力先用代码重写数据层,但还远远没有准备好)。

这就是我在连接到新服务器(运行 MySQL 5.7.20)时得到的结果。

[MySqlException (0x80004005): Unable to connect to any of the specified MySQL hosts.]
   MySql.Data.MySqlClient.NativeDriver.Open() +1228
   MySql.Data.MySqlClient.Driver.Open() +22
   MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder settings) +218
   MySql.Data.MySqlClient.MySqlPool.GetPooledConnection() +287
   MySql.Data.MySqlClient.MySqlPool.TryToGetDriver() +93
   MySql.Data.MySqlClient.MySqlPool.GetConnection() +65
   MySql.Data.MySqlClient.MySqlConnection.Open() +566
   System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure) +41

[EntityException: The underlying provider failed on Open.]
   System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure) +207
   System.Data.EntityClient.EntityConnection.Open() +104
   System.Data.Objects.ObjectContext.EnsureConnection() +75
   System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption) +41

所以我猜我的应用程序的依赖项与较新的 MySQL 服务器不兼容,但我没有什么信息可以继续。所以首先,我需要知道这是否确实如此。因为当我从 Visual Studio 连接到新服务器时,连接不会失败。

希望得到一些见解...

【问题讨论】:

  • 是的,我完全清楚将 Azure webapp 连接到本地数据库是多么错误......

标签: mysql asp.net-mvc entity-framework-4 connection-string


【解决方案1】:

所以这是反复试验,但通过恢复到 MySQL 的默认端口 (3306) 解决了问题

最初,dba 通过非标准端口使数据库可用,结果证明这不是一个好主意。没有深入研究,所以我不确定这是否真的是双方的防火墙问题。

【讨论】:

    猜你喜欢
    • 2013-06-15
    • 1970-01-01
    • 2016-09-03
    • 1970-01-01
    • 2011-03-05
    • 2010-10-21
    • 2016-02-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多