【问题标题】:ReplicationManager threw an exception on opening a connectionReplicationManager 在打开连接时抛出异常
【发布时间】:2019-06-24 13:42:17
【问题描述】:

我一直在使用 Visual Studio 2019,并且正在学习有关如何设置在线数据库的教程。在建立连接的第一步中,我收到一条错误消息:

System.TypeInitializationException:“MySql.Data.MySqlClient.Replication.ReplicationManager”的类型初始化程序引发了异常。

此错误已在以前版本的 Visual Studio 中解决,但我在 Visual Studio 2019 中没有发现任何相关信息。

这是我正在学习的教程:https://youtu.be/FOZ8HNJMXXg 我一直在寻找这个错误,发现人们在更早版本的 Visual Studio 中有完全相同的错误。他们的解决方案是打开“SQL Server Debugging”(参见这个答案https://stackoverflow.com/a/20788018/11327572) 我一直在寻找该选项,但在任何地方都找不到。我还搜索了 Visual Studio 2019 中的错误,但找不到任何内容。

        MySqlConnection con = new MySqlConnection("server=db4free.net;port=3306;database=***;User Id=***;Password=***!;charset=utf8");
        try
        {
            if (con.State == ConnectionState.Closed)
            {
                con.Open(); //this is the line the break comes up on.
                Log.Debug("MySQL connected", con.ToString()); 
            }
            con.Close();
        }catch(MySqlException ex)
        {
            Log.Debug("MySQL error", ex.ToString());
        }

【问题讨论】:

标签: c# android mysql xamarin visual-studio-2019


【解决方案1】:

我有同样的问题,但我用这个包解决了 MySqlConnector

注意

如果您使用的是 root 用户,请尝试使用密码创建另一个用户。

这是我用来连接 MySql 的类。

public class SQLDataAccess
{
    string cs = @"Server=172.20.10.5;Database=TestDB;Uid=Creative;Pwd=123456;";
    public SQLDataAccess()
    {
        try
        {
            connection = new MySqlConnection(cs);
            connection.Open();
        }
        catch (MySqlException Ex)
        {
            Console.WriteLine(Ex.Message);
        }
    }

    private string databaseName = string.Empty;

    public string DatabaseName
    {
        get { return databaseName; }
        set { databaseName = value; }
    }

    public string Password { get; set; }

    private MySqlConnection connection = null;

    public MySqlConnection Connection
    {
        get { return connection; }
    }

    private static SQLDataAccess _instance = null;

    public static SQLDataAccess Instance()
    {
        if (_instance == null)
            _instance = new SQLDataAccess();
        return _instance;
    }

    public bool IsConnect()
    {   
        try
        {
            connection = new MySqlConnection(cs);
            connection.Open();
            return true;
        }
        catch (MySqlException Ex)
        {
            Console.WriteLine(Ex.Message);
            return false;
        }
    }

    public void Close()
    {
        connection.Close();
    }
}

【讨论】:

  • MySqlConnector 工作!谢谢!我还将查看您的代码以进行连接,但首先我将完成该教程以使事情正常进行。
猜你喜欢
  • 1970-01-01
  • 2015-09-21
  • 2019-09-30
  • 1970-01-01
  • 1970-01-01
  • 2017-11-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多