如何使运行在ubuntu机器上的.net核心与本地数据库连接

时间:2018-09-25 14:07:00

标签: c# mysql .net-core

我有一个在ubuntu上运行的.net核心程序,我需要添加与同一台计算机上运行的数据库的连接。

我在Windows机器上创建了一个测试程序,该程序可以完美地(通过油灰通道)连接到想要的数据库和表并与之交互,但是使用了if(count($data) > 0){ foreach($data as $variant_id){ $imagesWithVariants[]= array($variant_id=>$imageSrc); } } ,这似乎是Windows特有的。我将MySql.Data.MySqlClient代码复制到ubuntu服务器(更改了名称空间,在主程序中引用了它,等等)。当我尝试构建时,找不到connection.cs(mysql上的类型或名称空间错误)。

让它工作的方法是:a)将MySql.Data.MySqlClient加载到ubuntu机器中,b)使用其他软件包(如果有人知道,则不然)或c)完全不同的方式。

我尝试查看教程/其他SO帖子以查看其代码,但是它们都不是关于连接到同一台计算机上托管的普通db的。

1 个答案:

答案 0 :(得分:2)

无耻地复制了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