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

C#连接本地MySQL报Connection option 'server' is duplicated错误如何解决

问题排查与解决方案

1 报错直接原因

你收到的Connection option 'server' is duplicated报错,核心是混用了SQL Server和MySQL的连接字符串语法,参数配置不符合MySQL驱动的解析规则:

  • MySQL的端口不能用逗号和IP拼接(逗号是SQL Server的专属语法),会被MySQL驱动误解析为重复的server参数
  • 使用了SQL Server专属的Initial Catalog参数,MySQL驱动不识别该参数,进一步引发参数解析混乱

2 连接字符串修正方案

把原连接字符串替换为符合MySQL规范的写法,以下是适配你场景的正确配置:

string conn = "server=127.0.0.1;port=3306;database=world;user id=root;password=;";

注意几个必填配置规则:

  • 端口单独用port=3306参数声明,不要和IP地址直接拼接
  • 用MySQL专属的database参数指定数据库名,这里要填你已经导入到MySQL中的数据库名称,不是world.sql的文件名,你需要先把world.sql导入到XAMPP的MySQL中创建好对应的world库
  • root用户无密码直接写password=留空即可,不需要加TrustedConnection参数,这个参数是SQL Server的Windows身份验证专用,MySQL完全不支持该配置

3 其他代码问题修正

  • 你的SQL语句表名拼写错误:coutry应为country,否则执行查询时会报表不存在的错误
  • 建议把数据库操作代码放到using块中,自动释放资源,避免连接泄漏,优化后的完整代码参考:
using System;
using MySql.Data.MySqlClient;

namespace ConsoleApp2
{
    class Program
    {
        private static void Main()
        {
            // 修正后的连接字符串
            string connStr = "server=127.0.0.1;port=3306;database=world;user id=root;password=;";
            string sql = "SELECT * FROM country"; // 修正表名拼写

            // using块自动释放连接、命令、阅读器资源
            using (MySqlConnection myConnection = new MySqlConnection(connStr))
            {
                using (MySqlCommand myCommand = new MySqlCommand(sql, myConnection))
                {
                    myConnection.Open();
                    using (MySqlDataReader myReader = myCommand.ExecuteReader())
                    {
                        while (myReader.Read())
                        {
                            for (int i = 0; i < myReader.FieldCount; i++)
                            {
                                Console.WriteLine(myReader[i].ToString());
                            }
                        }
                    }
                }
            }
        }
    }
}

4 额外检查项

  • 确认XAMPP的MySQL服务已经正常启动,3306端口没有被其他程序占用
  • 确认你已经通过XAMPP的phpMyAdmin或者其他工具将world.sql导入到MySQL中,生成了名为world的数据库
  • 如果后续连接还是失败,可以先通过Navicat、MySQL Workbench等工具用相同的IP、端口、用户名密码测试能不能正常连接到MySQL,排除服务端配置问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 07:06:00