ReplicationManager在打开连接时抛出异常

时间:2019-06-24 13:42:17

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

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

System.TypeInitializationException:“ MySql.Data.MySqlClient.Replication.ReplicationManager”的类型初始值设定项引发了异常。

此错误已在Visual Studio的早期版本中得到解决,但我在Visual Studio 2019中未发现任何有关此错误的信息。

这是我关注的教程:https://youtu.be/FOZ8HNJMXXg 我一直在寻找这个错误,发现人们在Visual Studio的早期版本中完全一样的错误。他们的解决方案是打开“ SQL Server调试”(请参阅​​此答案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());
        }

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题,但是我用这个软件包 MySqlConnector

解决了

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();
    }
}