代码之家  ›  专栏  ›  技术社区  ›  Louise

如何制作。运行在ubuntu机器上的net core与本地数据库连接

  •  0
  • Louise  · 技术社区  · 7 年前

    我有一本书。net核心程序运行在ubuntu上,我需要添加一个连接到同一台机器上运行的数据库。

    我在我的windows机器上创建了一个测试程序,该程序连接到我想要的数据库和表,并与它们进行交互(通过putty tunnel),但使用了 MySql.Data.MySqlClient ,这似乎是windows特有的。我复制了 connection.cs 向ubuntu服务器编码(更改名称空间,在主程序中引用名称空间等)。当我尝试构建时,它找不到 MySql。数据MySqlClient (mysql上的类型或命名空间错误)。

    让它工作是一个装载的问题吗 MySql。数据MySqlClient 进入ubuntu机器,b)使用不同的软件包(如果有人知道是什么),或c)以完全不同的方式进行。

    我试着查看教程/其他SO帖子以查看它们的代码,但没有一篇是关于连接到同一台机器上托管的普通db的。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Terry Carmen    7 年前

    无耻地抄袭 https://dev.mysql.com/doc/connector-net/en/connector-net-programming-connecting-connection-string.html

    MySql.Data.MySqlClient.MySqlConnection conn;
    string myConnectionString;
    
    myConnectionString = "server=127.0.0.1;uid=root;" +
        "pwd=12345;database=test";
    
    try
    {
        conn = new MySql.Data.MySqlClient.MySqlConnection();
        conn.ConnectionString = myConnectionString;
        conn.Open();
    }
    catch (MySql.Data.MySqlClient.MySqlException ex)
    {
        MessageBox.Show(ex.Message);
    }
    

    你需要在你的ubuntu机器上安装MySQLClient,如果它还没有安装的话。只需在包管理器中选择它。

    此外,如果这不起作用,请验证mysql实际上正在侦听TCP端口。您可能正在尝试TCP连接,但实际上它正在监听套接字。

    https://dev.mysql.com/doc/refman/8.0/en/can-not-connect-to-server.html