You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用C#连接Gearhost MySQL服务器时遇SqlException错误求助

解决C# WinForms连接Gearhost MySQL时的SqlException问题

嘿,我一眼就揪出问题所在啦!你遇到的System.Data.SqlClient.SqlException完全是用错了工具导致的——SqlClient家族是专门给Microsoft SQL Server服务的,根本不兼容MySQL数据库!

核心问题拆解

你代码里用的SqlConnection是SQL Server的专属连接类,强行用它连MySQL服务器,肯定会抛出异常。MySQL有自己的.NET驱动包,咱们得换对应的类才行。

具体解决步骤

  1. 安装MySQL的.NET驱动
    打开NuGet包管理器,搜索并安装MySql.Data(官方驱动)或者更现代的MySqlConnector(社区维护,性能更好)。

  2. 修改代码替换连接类
    先引用MySQL的命名空间,然后把所有Sql开头的类换成MySql开头的:

    // 先添加引用
    using MySql.Data.MySqlClient;
    
    private void button1_Click(object sender, EventArgs e)
    {
        // 替换成MySqlConnection,连接字符串格式保持不变(可以加上Port参数更稳妥)
        MySqlConnection myConnection = new MySqlConnection(
            "Server=den1.mysql6.gear.host;" +
            "Port=3306;" + // MySQL默认端口,Gearhost一般也是这个
            "Database=databasetestroy;" +
            "Uid=databasetestroy;" +
            "Pwd=myPassHere"
        );
    
        try
        {
            myConnection.Open();
            Console.WriteLine("连接成功!");
            // 后续数据库操作也要用MySqlCommand、MySqlDataReader等类
        }
        catch (MySqlException ex)
        {
            // 捕获MySQL专属异常,方便排查具体错误(比如密码错、IP被拦截等)
            Console.WriteLine($"连接失败:{ex.Message}");
        }
        finally
        {
            // 记得关闭连接
            if (myConnection.State == System.Data.ConnectionState.Open)
                myConnection.Close();
        }
    }
    
  3. 额外排查点

    • 确认Gearhost的MySQL白名单里添加了你的客户端IP,很多主机商会拦截未授权的IP访问;
    • 用MySQL Workbench先手动连接一次服务器,验证用户名、密码、数据库名是否正确,排除服务器端的问题;
    • 检查Gearhost的MySQL服务状态,确保服务器正常运行。

内容的提问来源于stack exchange,提问作者Royy212

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:58:11