当前位置:首页 > 问答 > 正文

.net程序连接mysql数据库配置文件要怎么写啊,求简单点的步骤和注意事项

最常用也最简单的配置文件就是appsettings.json,这个文件在ASP.NET Core项目里是标配,在控制台程序或WPF等程序中你也可以手动添加并使用它,它的好处是格式简单,就是纯文本的JSON,一看就懂。

第一步:创建或找到配置文件

在你的项目根目录下,找到名为appsettings.json的文件,如果没有,你就右键点击项目 -> 添加 -> 新建项 -> 选择“ASP.NET 配置文件”或直接创建一个叫appsettings.json的文本文件。

第二步:编写连接字符串

appsettings.json文件里,你需要添加一个叫做ConnectionStrings的节点,这个节点下面可以放很多个不同名字的连接字符串,下面是一个最简单的写法:

.net程序连接mysql数据库配置文件要怎么写啊,求简单点的步骤和注意事项

{
  "ConnectionStrings": {
    "DefaultConnection": "server=localhost;database=你的数据库名;uid=root;pwd=你的密码;"
  },
  // 其他配置项...
}

我来解释一下上面这行连接字符串里每个部分的意思,你照着改就行:

  • server:这里填你的MySQL数据库在哪里,如果数据库和你写的程序在同一台电脑上,就写localhost0.0.1,如果在另一台服务器上,就填那台服务器的IP地址或者网址。
  • database:这里填你要连接的那个具体数据库的名字,比如你创建了一个叫my_shop的数据库,这里就填my_shop
  • uiduser:这里填登录数据库的用户名,刚安装MySQL时,默认的最高权限用户通常是root
  • pwdpassword:这里填对应用户的密码,就是你安装MySQL时自己设的那个密码。

第三步:在程序中读取配置

光有配置文件不行,你的程序得能读到它,假设你用的是ASP.NET Core,这个过程已经帮你自动化了,你只需要在需要操作数据库的地方(比如控制器Controller里)通过一个叫“依赖注入”的方式获取配置。

.net程序连接mysql数据库配置文件要怎么写啊,求简单点的步骤和注意事项

就是在你的类文件的构造函数里,声明需要一个IConfiguration接口的参数,ASP.NET Core运行时会自动把这个配置对象给你送过来,代码如下:

using Microsoft.AspNetCore.Mvc;
using MySql.Data.MySqlClient; // 这是MySQL的官方驱动
using System.Data;
public class HomeController : Controller
{
    private readonly IConfiguration _configuration;
    // 这个构造函数是关键,系统会自动把配置传进来
    public HomeController(IConfiguration configuration)
    {
        _configuration = configuration;
    }
    public IActionResult Index()
    {
        // 1. 从配置中获取连接字符串
        string connectionString = _configuration.GetConnectionString("DefaultConnection");
        // 2. 创建数据库连接
        using (var connection = new MySqlConnection(connectionString))
        {
            // 3. 打开连接
            connection.Open();
            // 4. 这里就可以写SQL命令来查询或操作数据库了
            // var command = new MySqlCommand("SELECT * FROM Users", connection);
            // ...
        }
        return View();
    }
}

如果是控制台程序怎么办?

控制台程序没那么多自动化的东西,需要你手动做一点工作,你需要先安装一个叫Microsoft.Extensions.Configuration.Json的NuGet包,然后写代码手动加载appsettings.json文件。

using Microsoft.Extensions.Configuration;
using MySql.Data.MySqlClient;
using System.IO;
class Program
{
    static void Main()
    {
        // 1. 构建一个配置管理器,告诉它去读当前目录下的appsettings.json文件
        var builder = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
        var configuration = builder.Build();
        // 2. 获取连接字符串(后面就和ASP.NET Core里一样了)
        string connectionString = configuration.GetConnectionString("DefaultConnection");
        using (var connection = new MySqlConnection(connectionString))
        {
            connection.Open();
            Console.WriteLine("数据库连接成功!");
            // ... 你的数据库操作代码
        }
    }
}

重要的注意事项(避坑指南)

  1. 安装NuGet包:无论哪种项目,你都必须安装MySQL的官方.NET驱动包,这个包叫MySql.Data,安装方法:在Visual Studio里,右键点击你的项目 -> “管理NuGet程序包” -> 浏览 -> 搜索“MySql.Data” -> 安装,这是最重要的一步,没这个包,上面的代码一行都跑不了。
  2. 密码特殊字符:如果你的数据库密码里包含特殊字符, , &等,可能会和连接字符串的语法冲突,最简单的解决办法是用反斜杠\来转义这个特殊字符,密码是p@ssword,你就写成p\@ssword,如果麻烦,建议改个纯字母数字的密码用于测试。
  3. 千万别把配置文件上传到Git等版本库appsettings.json里明文写着你的数据库密码,这非常不安全,一旦你把项目代码上传到公开的GitHub等地方,你的数据库就完全暴露了。正确的做法是:
    • 创建一个appsettings.Development.json文件,在这里面写你本地开发用的连接字符串(密码可以简单点)。
    • 然后让顶层的appsettings.json文件忽略这个开发配置,或者只放一些不敏感的公共配置。
    • 最重要的一步是:创建一个叫appsettings.example.json的文件,里面只写连接字符串的结构,但不填真实的密码和敏感信息,然后把这个示例文件上传到Git,而真实的、带密码的appsettings.jsonappsettings.Development.json文件,一定要写入项目的.gitignore文件中,确保不会被意外上传。
      // appsettings.example.json 内容示例
      {
      "ConnectionStrings": {
      "DefaultConnection": "server=localhost;database=my_database_name;uid=username;pwd=your_password_here;"
      }
      }
  4. 检查MySQL服务是否启动:有时候代码没问题,但你的MySQL数据库服务根本没有启动,去Windows的服务管理器里看看MySQL的服务是不是处于“正在运行”的状态。
  5. 用户权限:确保你用的数据库用户名和密码是正确的,并且这个用户有权限访问你指定的那个数据库。

总结一下最简单的步骤就是:1)在appsettings.json里按格式写好连接字符串;2)在项目里安装MySql.Data包;3)在代码里用GetConnectionString拿到字符串,然后创建连接,最后一定要注意密码安全的问题。