C# MySql.Data.MySqlClient.MySqlException (0x80004005)

问题描述 投票:0回答:3

这是我的连接字符串

"Server=xxx.xxx.xxx.x;Database=database;Uid='root';Pwd='';"

服务器上的ip是我要访问的另一台计算机(有xampp)的ip。

这是我收到的异常。

MySql.Data.MySqlClient.MySqlException(0x80004005):无法连接 到任何指定的 MySQL 主机。 在 MySql.Data.MySqlClient.NativeDriver.Open() 在 MySql.Data.MySqlClient.Driver.Open() 在 MySql.Data.MySqlClient.Driver.Create(MySqlConnectionStringBuilder 设置)位于 MySql.Data.MySqlClient.MySqlPool.GetPooledConnection() 在 MySql.Data.MySqlClient.MySqlPool.TryToGetDriver() 处 MySql.Data.MySqlClient.MySqlPool.GetConnection() 在 MySql.Data.MySqlClient.MySqlConnection.Open()

c# winforms phpmyadmin
3个回答
1
投票

使用 C# 上的 mysql,连接字符串中不需要单引号

例如:

ConnStr = "Server = XXX.XXX.XXX.XXX; Database = mydatabase; Uid = root; Pwd = yourpassword";   

MySqlConnection con = new MySqlConnection(ConnStr)

您还可以验证是否可以 ping 通另一台计算机:

    using System.Net.NetworkInformation;

    public static bool IsConnectedToServer()
    {
        Ping p = new Ping();
        try
        {
            PingReply reply = p.Send("XXX.XXX.XXX.XXX", 3000);
            if (reply.Status == IPStatus.Success)
                return true;
            else return false;
        }
        catch { return false; }
    }

0
投票

我认为你的连接字符串是错误的

我应该在

<appSettings>

<add key="myConnectionString" value="Server=localhost;Database=dbName;User Id=username;Password=password;"/>

<connectionStrings>

<add name="myConnectionString" connectionString="Server=Server=localhost;Database=dbName;User Id=username;Password=password;" providerName="MySql.Data.MySqlClient"/>

以及参考此链接以启用Mysql的远程访问


0
投票

我也遇到了同样的问题,并使用具有 Sslmode =none 的连接字符串进行了修复 “服务器=xxx.xxx.xxx.x;数据库=数据库;Uid=root;密码=我的密码;SslMode=无”

© www.soinside.com 2019 - 2024. All rights reserved.