C#连接OSX本地MySQL数据库报错,如何修正SqlConnectionString?
问题根源与解决方案
你遇到的核心问题是用错了数据库驱动库!System.Data.SqlClient是专门为连接Microsoft SQL Server设计的,而你要连接的是MySQL,这就导致程序一直在尝试寻找SQL Server服务,自然会报连接失败的错误。
接下来一步步解决问题:
1. 安装MySQL的.NET驱动
首先需要安装适用于.NET的MySQL驱动,目前最常用的是MySqlConnector(开源且维护活跃)。你可以通过两种方式安装:
- 在Visual Studio中:右键项目 → 管理NuGet程序包 → 搜索
MySqlConnector并安装 - 用.NET CLI命令:
dotnet add package MySqlConnector
2. 替换代码中的连接对象与命名空间
把代码里的SqlConnection替换为MySQL对应的MySqlConnection,同时添加MySqlConnector的命名空间引用。
3. 修正MySQL连接字符串
MySQL的连接字符串格式和SQL Server有差异,而且OSX上通常不支持Windows身份认证(Trusted_Connection=true是SQL Server的特性),你需要换成MySQL的账号密码认证方式。
正确的代码示例:
using MySqlConnector; // 替换原有的System.Data.SqlClient using(MySqlConnection conn = new MySqlConnection()) { // 替换成你的MySQL用户名和密码 conn.ConnectionString = "Server=localhost;Database=Studentenverwaltung;User ID=your_mysql_username;Password=your_mysql_password;Port=3306"; conn.Open(); }
连接字符串参数说明:
Server=localhost:本地MySQL服务地址,也可以写成127.0.0.1Database=Studentenverwaltung:你的数据库名称,这个是正确的User ID:MySQL的用户名(比如默认的root)Password:对应用户的登录密码Port=3306:MySQL默认端口,如果你的MySQL修改过端口,替换成对应数值
最后可以在OSX终端用mysql -u your_username -p测试一下,确认MySQL服务是否正常启动并能登录。
内容的提问来源于stack exchange,提问作者Stefan
相关产品推荐
相关产品推荐

