Consider enabling transient error resiliency by adding 'EnableRetryOnFailure()' to the 'UseMySql' call
ef core連接不上MySQL
連接字符串是:
'Data Source = 127.0.0.1;Database = test1;UserID=root;password=123456;pooling=true;port=3306;sslmode=none;Charset=utf-8';
乍一看沒啥錯
正確的:'Data Source = 127.0.0.1;Database = 'test1';UserID=root;password=123456;pooling=true;port=3306;sslmode=none;Charset=utf-8';
數據庫名要加引號
=====================
連接MySql(基於.net core3.1)
首先第一步安裝包,在NuGet包管理器里面安裝Pomelo.EntityFrameworkCore.MySql
nuget慢的話可以使用命令行:PM>dotnet add package Pomelo.EntityFrameworkCore.MySql
第二步在配置appsettings配置文件中配置連接信息:
{ "Logging": { "IncludeScopes": false, "LogLevel": { "Default": "Warning" } }, "ConnectionStrings": { "MysqlConnection": "Data Source=localhost;Database=test;User ID=root;Password=123456;pooling=true;CharSet=utf8;port=3306;sslmode=none" } } //Data Soruce:IP //Database:數據庫名 //User ID:數據庫用戶名 后面的都很容易看懂
第三步在Startup.cs文件的ConfigureServices方法添加:
var connection = Configuration.GetConnectionString("MysqlConnection"); //這里的MysqlConnection要和appsettings中ConnectionStrings里面的MysqlConnection相同 services.AddContextPool<AppDbContext>(options => //這是我目前找到的唯一一種在ConfigureServices里面配置Mysql服務 options.UseMySql( connection, new MySqlServerVersion(new SyStem.Version(8,0,17)) ) ); //網上很多都是 services.AddDbContext<DBContext>(options => options.UseMySQL(connection)); //但是這種不知道.net 3.1不支持,UseMySQL方法里面非空的參數沒有只有connection這一個參數的重載方法。
遷移
在程序包管理控制台中執行