今天接着上一篇的内容继续来学习安装运行mysql。建议先阅读第一篇:windows安装docker

一 查看mysql版本

如果想知道mysql镜像具体有哪几个版本,需要去docker hub查看。

地址如下: https://hub.docker.com/r/library/

二 拉取mysql镜像

命令如下:

docker pull 镜像名称:版本号

打开命令窗口输入

docker pull mysql:8.0

等待几分钟就完成了,然后输入以下命令查看镜像

docker images

三 启动mysql服务

命令如下:

docker run --name mysql8.0 -e MYSQL_ROOT_PASSWORD=123456 -d -p 23306:3306 mysql:8.0

解释一下上面的命令的具体含义

docker run  // 启动容器
--name mysql8.0 // 指定容器名称为mysql8.0
-e MYSQL_ROOT_PASSWORD=123456 // 配置环境变量,指定root用户的密码为123456
-d // 是否后台启动,默认false
-p 23306:3306 // 将3306端口映射出来为23306进行访问
mysql:8.0 // 镜像名称

四 允许客户端进行登录

第三步完成后一个docker容器就算起来了,我们用客户端连接数据库发现报错了。

主要原因是mysql服务器要求的认证插件版本与客户端不一致造成的。

使用命令 docker exec -it mysql8.0 /bin/bash 进入容器,然后登录mysql服务,命令如下:mysql -uroot -p 123456,登录成功后,use mysql ,使用sqlselect user,plugin from user 查看认证插件。

可以看到root用户使用的plugin是caching_sha2_password,mysql官方网站有如下说明:

意思是说caching_sha2_password是8.0默认的认证插件,必须使用支持此插件的客户端版本。两种方式一种是升级客户端,另一种是修改插件认证为 mysql_native_password,我们看一下第二种。

// 第一:修改root的密码为'root',摒弃原来的旧密码。第二:使用mysql_native_password对新密码进行编码。
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
// 刷新权限
FLUSH PRIVILEGES;

这样就完成了,客户端可以正常登录。

五 docker常用命令

1.docker images // 查看镜像
2.docker run 镜像名称 // 生成一个正在运行的容器实例
3.docker stop 容器名称 // 停止容器
4.docker rm 容器名称 // 删除容器
5.docker start 容器名称 // 启动容器
6.docker restart 容器名称 //重启容器
7.docker rmi 镜像名称 // 删除镜像
8.docker exec -it 容器名称 /bin/bash // 进入容器
9.docker ps // 显示正在运行的所有容器
10.docker ps -a // 显示所有容器(包括已经停止的)
11.docker pull 镜像名称:版本号 // 拉取镜像

如果文章对您有帮助,请记得点赞关注哟~

欢迎大家关注我的公众号<情系IT>,每日技术推送文章供大家学习参考。

windows使用docker运行mysql等工具(二)安装运行mysql的更多相关文章

  1. [原创] debian 9.3 搭建Jira+Confluence+Bitbucket项目管理工具(二) -- 安装jira 7.5.4

    [原创] debian 9.3 搭建Jira+Confluence+Bitbucket项目管理工具(二) -- 安装jira 7.5.4 环境都配置好以后, 开始搭建Jira的环境, 这里参考了一篇文 ...

  2. Mysql升级、免安装版MYSQL安装与卸载

    1.         备份好数据库:表结构和数据: 2.         备份my.ini文件和data文件夹: 3.         卸载旧版本mysql: 4.         安装新版本mysq ...

  3. mysql基准测试工具tpcc-mysql安装、使用、结果解读

    TPCC是专门针对联机交易处理系统(OLTP系统)的规范,一般情况下我们也把这类系统称为业务处理系统,tpcc-mysql是percona基于TPC-C(下面简写成TPCC)衍生出来的产品,专用于My ...

  4. MySQL客户端工具的使用与MySQL SQL语句

    MySQL客户端工具的使用 1.MySQL程序的组成 客户端 mysql:CLI交互式客户端程序 mycli:CLI交互式客户端程序;使用sql语句时会有提示信息 mysql_secure_insta ...

  5. mysql命令之二:查看mysql版本的四种方法

    1:在终端下:mysql -V. 以下是代码片段: [shengting@login ~]$ mysql -V mysql Ver 14.7 Distrib 4.1.10a, for redhat-l ...

  6. Mysql 5.7版本安装:mysql 服务无法启动。

    一.解压文件 下载好MySQL后,解压到D盘下,也可以根据个人喜好解压在其他盘符的路径下,解压后的路径是:D:\mysql-5.7.17-winx64.解压好后不要太兴奋,需要配置默认文件呢! 二. ...

  7. Dubbo入门到精通学习笔记(十九):MySQL源码编译安装、MySQL主从复制的配置

    文章目录 MySQL 源码编译安装(CentOS-6.6+MySQL-5.6) 一.服务器配置: 二.源码安装 MySQL5.6.26: MySQL主从复制的配置 环境 依赖课程 MySQL 主从复制 ...

  8. wamp中的mysql服务与原来安装的mysql服务冲突的解决办法

    如果原来机器上已经安装了mysql,在安装wamp之后,打开wamp上的mysql时会打不开,或者会将原来安装的mysql服务关闭.原因是两个mysql共用了3306端口,解决办法是更改其中的一个端口 ...

  9. WineBottler for Mac(Mac 运行 exe 程序工具)安装

    1.软件简介    WineBottler 是 macOS 系统上一款模拟 Windows 环境的工具,让你能够在 Mac 上安装 Windows 软件,类似于知名的 Crossover,但 Wine ...

  10. MySql(十二):MySql架构设计——可扩展设计的基本原则

    一.前言 科技在发展,硬件设备的发展渐渐无法满足应用系统对处理能力的要求.不过,我们还是可以通过改造系统的架构体系,提升系统的扩展能力,通过组合多个低处理能力的硬件设备来达到一个高处理能力的系统,也就 ...

随机推荐

  1. 网页布局——float浮动布局

    我的主要参考资料是[Object object]的文章 float 布局应该是目前各大网站用的最多的一种布局方式了,但是也特别复杂,这里详细讲一下 首先,什么是浮动? 浮动元素是脱离文档流的,但不脱离 ...

  2. 原生js动态创建、获取、删除属性的几种方式

    1.创建属性 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <ti ...

  3. SQL SERVER数据库多条件查询

    例如:查询挂号超500的数据select CONVERT(VARCHAR(10),DGH,23),COUNT(*) from yxhis2017..VTBMZGHMX2017 where bth=0 ...

  4. 使用TryGetComponent取代GetComponent以避免Editor中的内存分配

    作为Unity开发人员,可能或多或少都会遇到过一个常见的Unity的GC分配问题——在Editor中使用GetComponent方法来获取一个不存在的Component时会分配额外的内存.就像下图 需 ...

  5. 爬虫 xpath

    xpath简介 1.xpath使用路径表达式在xml和html中进行导航 2.xpath包含标准函数库 3.xpath是一个w3c的标准 xpath节点关系 1.父节点 2.字节点 3.同胞节点 4. ...

  6. 案例——TCP上传图片

    TCP上传图片   继续做一个TCP的相关案例,在客户端上传一张图片到服务端,服务端收到图片后,给客户端回馈上传成功信息. 实现细节: 对于一些文件的读取,若文件偏大,可以始用缓冲区去读取和写入,可以 ...

  7. 机器学习回顾篇(7):决策树算法(ID3、C4.5)

    .caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...

  8. .NET实时2D渲染入门·动态时钟

    .NET实时2D渲染入门·动态时钟 从小以来"坦克大战"."魂斗罗"等游戏总令我魂牵梦绕.这些游戏的基础就是2D实时渲染,以前没意识,直到后来找到了Direct ...

  9. Python开发【第三篇】数据类型

    1.数字类型 int 整数 1 2 3 float 浮点数 1.1 0.9 0.99 complex 复数 (2+0j) str 字符串 'hello world' "hello world ...

  10. python类的__repr__方法

    python3中的类默认是新式类(继承object类). __repr__()是 Python 类中的一个特殊方法,由于 object 类己提供了该方法, 而所有 的 Python 类都是 objec ...