在.NET 6中使用Dapper Framework连接到MySql失败

mbyulnm0  于 2023-08-02  发布在  Mysql
关注(0)|答案(1)|浏览(219)

我在.NET 6环境下创建了一个WEB MVC视图项目,当我尝试连接到数据库时,我收到了一个错误。我介绍了MySql.Data(8.1.0)包。
第一个月
下面是appsettings.json文件中的mysql配置参数。

{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft.AspNetCore": "Warning"
    }
  },
  "AllowedHosts": "*",
  "ConnectionString": "server=localhost;port=3306;database=test;user=root;password=root;"
}

字符串
下面是Program.cs代码

MySqlDBHelper.DB_CONNECTION_STRING = app.Configuration["ConnectionString"];


我确信我的数据库帐户密码没有设置错误
我已经试过调试以确保连接器正确获取DB_CONNECTION_STRING数据。下面是控制器的Add方法

[HttpGet("Add")]
        public object Add(string FileName, string FilePath,string ImageUrl)
        {

            var sql = "INSERT INTO image_info (FileName, FilePath, ImageUrl) VALUES (@FileName, @FilePath, @ImageUrl)";

            using var conn = MySqlDBHelper.GetSqlConnection();

            conn.Open();
            var result = conn.Execute(sql, new { FileName, FilePath, ImageUrl });
            return Ok();
        }

8yparm6h

8yparm6h1#

原因

Mysql8.0+较旧版本更新了密码加密方式。
打开命令,输入mysql>,然后输入

mysql> select user,host,plugin from mysql.user;

字符串
可以看到plugin(插件)格式已经更新为caching_sha2_password,所以我们只需要更改为旧版本的mysql_native_password即可:
ALTER USER 'root'@'这里是主机下的名称,例如localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
修改后记得刷新命令FLUSH PRIVILEGES;(刷新权限)

相关问题