我有一个在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的。
答案 0 :(得分:2)
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