我们的项目之前在直接连接的mysql,今天我们将通过docker挂载mysql 并与我们开发的webapi项目连接。

1、 安装docker

下载地址:

https://download.docker.com/win/stable/Docker%20for%20Windows%20Installer.exe

下载后直接点下一步就可完成安装,或参见:

https://www.cnblogs.com/stilldream/p/10627831.html

2、 安装完成后查看版本:docker –version

3、 设置一下镜像仓库吧,点击桌面右下角下的docer小图标,右键settings进入:

加入http://hub-mirror.c.163.com

4、  下载mysql 镜像。

进入cmd 输入命令:docker pull  mysql

5、等待所有的都下载完成后启动mysql

docker run -d -p 3306:3306 --name mysql01 mysql/mysql-server

启动后可以用命令:docker ps  查看到运行的容器。

6、获取root初始密码:docker logs mysql01

复制密码:UP0jkovbOtj3mxEJLyvJeRasIL#

7、进入docker中的mysql

Docker exec –it mysql01 bash

如果报错:OCI runtime exec failed:xxx

可用:Docker exec -it mysql01 /bin/sh 命令进入

8、再输入:mysql –uroot –p

会提示我们修改密码:将之前复制的密码右键就可粘贴,回车,会要我们修改密码

使用:SET  PASSWORD  FOR 'root'@'localhost'=PASSWORD('1230');

如果不行可能是版本问题,mysql8.0以上就用命令:alter user 'root'@'localhost' identified by '1230';

9、修改成功后我们最好不要用root用户,来创建一个自己的用户吧:

Create user 'zhengwei'@'localhost' identified by '1230';

10、查看用户是否创建成功:

select user,host from user  或者用  select user,host from mysql.user

11、改成任意主机都可以访问的吧:

update user set host='%' where user = 'zhengwei';

12、同样我的是mysql8.0以上,用以下的sql给用户赋予所有权限:

grant all privileges on *.* to 'zhengwei'@'%' with grant option;

13、使用navicat连接一下我们的mysql,由于我本机之前是装了mysql,为了防止冲突,使用exit退出后,执行net stop mysql

连接时会报错:

14、是权限的问题,再次进入mysql 如何再将进去,请看上面吧,然后刷新权限:刷新权限:FLUSH PRIVILEGES,再次连接 ,还是报错:

原因:mysql 8.0 默认使用 caching_sha2_password 身份验证机制;客户端不支持新的加密方式。

修改用户(zhengwei)的加密方式:

先查看所有用户的加密方式:

select host,user,plugin,authentication_string from mysql.user

将zhengwei的加密方式修改为mysql_native_password

ALTER USER 'zhengwei'@'%' IDENTIFIED WITH mysql_native_password BY '1230';

再次连接,终于完美解决,爽:

15、docker中已安装好了mysql,那就用我们之前开发的webapi连接这个mysql吧。

16、打开之前创建的.netcore webapi项目(NetCore项目实战篇01---EFCore CodeFirst For Mysql 数据库初始化),修改mysql连接

17、VS中选择工具->NuGet包管理器->程序包管理器控制台。

输入命令:Update-Database

记得默认项目要选zhengwei.Use.Api

执行完成后我们用navicat看看数据库中也生成成功了。

如果在执行时失败,可能是因为用户的权限问题,我们要回到命令行停止当前的mysql:

命令:docker stop mysql01   再删除:docker rm mysql01

通过在启动时加环境变量,因为我们前面已创建了zhengwei这个用户就直接用这个用户启动:

docker run -d -p 3306:3306 -e MYSQL_USER="zhengwei" -e MYSQL_PASSWORD="1230" -e MYSQL_ROOT_PASSWORD="1230"  --name mysql01 mysql/mysql-server --character-set-server=utf8 --collation-server=utf8_general_ci

然后再给用户授所有的权,都按上面的顺序来就可以了。

18、打开postman访问我们的webapi也是成功的,此时我们连接的mysql是docker容器中运行的mysql,如下图:

NetCore项目实战篇08---Docker挂载mysql并连接.netCoreWeb的更多相关文章

  1. NetCore项目实战篇06---服务注册与发现之consul

    至此,我们的解决方案中新建了三个项目,网关(Zhengwei.Gateway).认证中心(Zhengwei.Identity)和用户资源API(Zhengwei.Use.Api).当要访问用户API的 ...

  2. Net core项目实战篇01---EFCore CodeFirs For Mysql 数据库初始化

    从今天开始我们用Net Core进行项目实战,采用微服务构架,因此你会看到我各模块开始都是用的web api.项目中的代码直接可以复制.费话不多说,现在就来跟我一起开始吧! 1.打开VS2017—&g ...

  3. NetCore项目实战篇05---添加Ocelot网关并集成identity server4认证

    今天来给我们的项目增加API网关,使用Ocelot. 它是系统暴露在外部的一个访问入口,这个有点像代理访问的家伙,就像一个公司的门卫承担着寻址.限制进入.安全检查.位置引导.等等功能.同时我们还要在网 ...

  4. NetCore项目实战篇02---全局异常处理

    在 .netcore中可以自定义自己的异常类型,步骤如下: 1.自定义自己的异常类型UserOperationException 并继承自Exception public class UserOper ...

  5. NetCore项目实战篇04---集成IdentityService4

    大家都知道我们的项目中已有web api,现在可以正式访问,不论任何人只要通过输入对应的api网址就可以访问到我们的api 资源,这样是很不安全的,我们需求对当前用户进行身份验证,因此我们在项目中使用 ...

  6. NetCore项目实战篇03---HTTP Patch 更新数据

    一.什么是HTPP Patch HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法. HTTP1.1新增了五种请求方法:OPTIONS, PUT, DELETE, TRACE 和 ...

  7. NetCore项目实战篇07---服务保护之polly

    1.  为什么要用polly 前面的项目中,一个服务调用另一个(Zhengwei.Identity调用Zhengwei.Use.Api)服务时是直接调用的,在这个调用的过程中可能会发生各种瞬态故障,这 ...

  8. 洗礼灵魂,修炼python(82)--全栈项目实战篇(10)—— 信用卡+商城项目(模拟京东淘宝)

    本次项目相当于对python基础做总结,常用语法,数组类型,函数,文本操作等等 本项目在博客园里其他开发者也做过,我是稍作修改来的,大体没变的 项目需求: 信用卡+商城: A.信用卡(类似白条/花呗) ...

  9. C# Xamarin移动开发项目实战篇

    一.课程介绍 在前面阿笨的<C# Xamarin移动开发基础进修篇>课程中,大家已经熟悉和了解了Xamarin移动App开发的基础知识和原理.本次分享课<C# Xamarin移动开发 ...

随机推荐

  1. SpringBoot返回JSON日期格式问题

    SpringBoot中默认返回的日期格式类似于这样: "birth": 1537407384500 或者是这样: "createTime": "201 ...

  2. python安装pycrypto库

    使用pycharm时安装pycrypto库,一直安装不上,提示安装成功,退出去一看,依旧没有 最后选择了pip安装,但一直报错(Microsoft Visual C++ 9.0 is required ...

  3. JPA与hibernate-------JPA

    ORM概述 ORM(Object-Relational Mapping) 表示对象关系映射.在面向对象的软件开发中,通过ORM,就可以把对象映射到关系型数据库中.只要有一套程序能够做到建立对象与数据库 ...

  4. 花了几天入门Storm,上了一版,全是Bug

    前言 只有光头才能变强. 文本已收录至我的GitHub精选文章,欢迎Star:https://github.com/ZhongFuCheng3y/3y 听说过大数据的同学应该都听说过Storm吧?其实 ...

  5. 字节码编程,Javassist篇二《定义属性以及创建方法时多种入参和出参类型的使用》

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 在上一篇 Helloworld 中,我们初步尝试使用了 Javassist字节编程的 ...

  6. acm的一些头文件和调试代码

    个人觉得单步调试麻烦且费时间,所以我两年时间里F4+watch基本没怎么用过,但由于"查看变量的值"这个需求总是存在的,并且调试时通常需要显示很多东西,printf写起来又比较蛋疼 ...

  7. Luogu P3389 高斯消元

    https://www.luogu.com.cn/problem/P3389 主元消元法[模板] 高斯消元是解决多元线性方程组的方法,再学习它之前,先引入一个东西--行列式 行列式的性质: 这里我们只 ...

  8. python机器学习笔记:EM算法

    EM算法也称期望最大化(Expectation-Maximum,简称EM)算法,它是一个基础算法,是很多机器学习领域的基础,比如隐式马尔科夫算法(HMM),LDA主题模型的变分推断算法等等.本文对于E ...

  9. Python --函数学习2

    一.函数参数和返回值 --参数:负责给函数传递一些必要的数据或者信息 -形参(形式参数):在函数定义的时候用到的参数,没有具体值,只是一个占位符号 -实参(实际参数):在调用函数的时候输入的值 exa ...

  10. Mockito不能mock final类的解决办法

    Mockito是很常用的测试工具,使用过程中可能会遇到下面的问题: Mockito cannot mock/spy because : - final class 问题重现: 引入该依赖到项目的mav ...