【问题标题】:Problems connecting to local MySQL server连接到本地 MySQL 服务器的问题
【发布时间】:2019-06-24 19:53:07
【问题描述】:

我在连接到本地 MySQL 数据库时遇到问题。

我确保服务器正在运行,我可以使用连接字符串中的用户和密码连接到服务器,并使用终端创建数据库。

我在 Mac 和 MySQL 8.0.16 上使用 Visual Studio 社区。

示例: 程序.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace ReadSQL
{
    class Program
    {
        static void Main(string[] args)
        {
            DataAccess dataAccess = new DataAccess();
            dataAccess.GetTask();
        }
    }
}

DataAccess.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Dapper;
using System.Data;

namespace ReadSQL
{
    public class DataAccess
    {
        public List<Task> GetTask()
        {
            using (IDbConnection connection = new System.Data.SqlClient.SqlConnection(Helper.CnnVal("workloadDB")))
            {
                var output = connection.Query<Task>($"select * from task where id=1").ToList(); //exception thrown here
                Console.WriteLine(output);           
            }
        }
     }
}

Helper.cs

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ReadSQL
{

        public static class Helper
        {
            public static string CnnVal(string name)
            {
                return ConfigurationManager.ConnectionStrings[name].ConnectionString;
            }
        } 
}

Task.cs

using System;
namespace ReadSQL
{
    public class Task
    {
        int id { get; set; }
        string name { get; set; }
    }
}

App.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <connectionStrings>
        <add name="workloadDB" connectionString="Server=localhost;Database=workload;Uid=root;Pwd=adminPasswort;" providerName="System.Data.SqlClient"/>
    </connectionStrings>
</configuration>

我希望变量输出包含我的表的第一行,但我得到了错误消息:

System.Data.SqlClient.SqlException 发生网络相关或特定于实例的错误,同时 建立与 sql server 的连接。找不到服务器或 无法访问。验证实例名称是否正确,并且 SQL Server 配置为允许远程连接。

我不知道为什么我无法建立连接,因为 MySQL 服务器肯定正在运行并且连接字符串应该是正确的(也尝试过:trusted_connection=true;)。 提前致谢!

【问题讨论】:

    标签: c# mysql dapper visual-studio-mac


    【解决方案1】:

    您不能使用SqlConnection 类连接到 MySQL。相反,从 NuGet 安装 MySqlConnector,然后使用:

    using (IDbConnection connection = new MySqlConnection(Helper.CnnVal("workloadDB")))
    {
        var output = connection.Query<Task>($"select * from task where id=1").ToList();          
    }
    

    您的连接字符串看起来应该与MySqlConnection 兼容,但如果您使用任何其他选项,则应根据the list of valid connection options 仔细检查它们。

    【讨论】:

      猜你喜欢
      • 2017-04-20
      • 2014-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多