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

C# SqlConnection.Open()阻塞,调试模式遇SQL Server连接错误求解决

老兄,你这里踩了个典型的坑——你用的是SQL Server专属的SqlConnection类去连接MySQL数据库,这俩完全是不同数据库的驱动,难怪会报SQL Server的连接错误!下面给你一步步解决这个问题:

解决方案步骤

1. 替换为MySQL专用的连接类

SqlConnection是微软为SQL Server开发的,连MySQL必须用MySQL对应的连接类:

  • 如果你用官方旧驱动:MySql.Data.MySqlClient.MySqlConnection
  • 推荐用更活跃的开源驱动:MySqlConnector.MySqlConnection(更新更稳定)

把代码里所有SqlConnection的地方替换成MySqlConnection,别忘了引入对应的命名空间。

2. 安装MySQL驱动的NuGet包

打开Visual Studio的NuGet包管理器,搜索并安装对应的包:

  • 开源推荐包:MySqlConnector
  • 官方旧包:MySql.Data

或者用Package Manager Console命令安装:

# 安装MySqlConnector(推荐)
Install-Package MySqlConnector

# 或者安装官方旧包
Install-Package MySql.Data

3. 修正MySQL连接字符串

SQL Server的连接字符串和MySQL完全不一样,你需要改成MySQL的格式示例:

// 本地连接示例
string connStr = "server=localhost;database=你的数据库名;user=你的用户名;password=你的密码;port=3306;";

// 远程连接示例
string connStr = "server=192.168.1.100;database=你的数据库名;user=你的用户名;password=你的密码;port=3306;";

注意:MySQL默认端口是3306,如果你的服务改了端口要对应调整。

4. 确认MySQL服务正常运行

打开Windows服务管理器(按下Win+R输入services.msc),找到MySQL服务(一般叫MySQL51,对应你的5.1版本),确保它处于正在运行状态。如果没启动,右键点击启动,必要时设置为自动启动。

5. 验证数据库账号的连接权限

  • 先用MySQL命令行或者Workbench测试连接:输入mysql -u 你的用户名 -p,输入密码后看能不能正常进入数据库,排除数据库本身的问题。
  • 如果是远程连接,需要给账号授权远程访问权限:
    -- 授权账号允许从任何IP连接(谨慎使用,生产环境建议限制IP)
    GRANT ALL PRIVILEGES ON *.* TO '你的账号'@'%' IDENTIFIED BY '你的密码';
    -- 刷新权限
    FLUSH PRIVILEGES;
    

6. 排查防火墙和端口

  • 远程连接时,确保服务器的防火墙允许3306端口的入站连接;本地连接可以暂时关闭防火墙测试,排除拦截问题。

内容的提问来源于stack exchange,提问作者윤정도

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:20:20