使用EF操作Docker中的MySQL实例(2)

# 把root密码置空
update user set authentication_string = '' where user = 'root' and host = 'localhost';
# 修改root密码
alter user root@'localhost' identified by '你的密码';

如果你要添加用户给别人用,则可以这么做。

# 添加用户
create user dev@'%' identified by '123456';
# 给用户授权
grant Alter, Create, Create Temporary Tables, Create User, Create View, Delete, Drop, Event, Index, Insert, Lock Tables, Process, References, Reload, Select, Show Databases, Show View, Trigger, Update on *.* to dev@'%';
# 刷新权限
flush privileges;

完事之后你就可以通过navticat premium 工具进行远程连接了...

随后我们创建一个.NET Core工程,添加EF关于MySql的相关包,这里我遇到了一个问题,在我使用 MySql.Data.EntityFrameworkCore 实体移植的时候爆出下面的错误,目前还不知道是什么原因。在.NET Core 3.0+ 有BUG吧。回头我去提交个issues ...

System.TypeLoadException: Method 'get_Info' in type 'MySql.Data.EntityFrameworkCore.Infraestructure.MySQLOptionsExtension' from assembly 'MySql.Data.EntityFrameworkCore, Version=8.0.18.0, Culture=neutral,

所以我使用了 pomelo作为代替它,发现毫无异常。直接code first 开干。

public class MysqlDbContext : DbContext
    {
        public DbSet<Student> students { get; set; }
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            //base.OnConfiguring(optionsBuilder);
            string sqlConnection = "server=IP;uid=zaranet;pwd=123456;database=MyDemo";
            optionsBuilder.UseMySql(sqlConnection);
        }
        protected override void OnModelCreating(ModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
        }         
    }

随后直接 Add-Migration Init ,再update..

PM> Add-Migration Init
To undo this action, use Remove-Migration.
PM> update-database Init

OK,打开navicat 看一下 成功了。

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/e50d29199f30cedd364178347b54d556.html