【问题标题】:MySql.Data.MySqlClient.MySqlException using ServiceStack ORMLiteMySql.Data.MySqlClient.MySqlException 使用 ServiceStack ORMLite
【发布时间】:2017-05-24 02:38:17
【问题描述】:

我正在与 ServiceStack 合作,使用 MySql 评估 ORMLite 提供程序以用于 .NET Core 1.1 项目。我遇到了一个奇怪的问题,我不确定问题是什么,并正在寻找有关如何进一步解决此问题或可能的修复的一些指导。

我在标准 docker 容器中运行 .Net Core 应用程序,在标准 MySql 容器中运行 MySql。我已经能够成功运行 MySQL 并与工作台工具连接。

我不能做的是让 Web 应用程序的执行代码成功连接到 MySQL 容器。我尝试了各种组合。如果 IP 地址或主机名错误,我会收到一个有意义的错误,提示主机未知。

但在使用适合 MySQL 容器的服务器名称或 IP 地址值的情况下,我会收到一般的 MySQLException 错误。用户名和密码正确。我什至使用了 root 帐户来确保没有任何潜在的安全问题。

这是我尝试连接的代码 sn-p。此设置使用本地 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
            }
        }

【问题讨论】:

    标签: mysql docker servicestack ormlite-servicestack


    【解决方案1】:

    我已经弄清楚了我的情况。

    在 MySQL Connection 字符串中,如果使用非标准端口,则需要使用 port 参数指定不同的端口,如果使用标准端口,则完全省略端口。

    我的问题是我一直在使用“Server=servername:port;”这是不正确的格式,应该是“Server=servername;Port=port;”在我使用非标准端口号的情况下,否则 Port= 可以省略。

    【讨论】:

      猜你喜欢
      • 2014-01-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-19
      • 2022-01-18
      • 2021-11-03
      相关资源
      最近更新 更多