博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用 docker 安装多版本的 MySQL
阅读量:5371 次
发布时间:2019-06-15

本文共 2748 字,大约阅读时间需要 9 分钟。

原文:

首先从 docker 官网下载安装 docker。

检查 docker 安装是否成功,出现类似下面的信息就是安装好了

$ docker versionClient: Docker Engine - Community Version:           18.09.0 API version:       1.39 Go version:        go1.10.4 Git commit:        4d60db4 Built:             Wed Nov  7 00:47:43 2018 OS/Arch:           darwin/amd64 Experimental:      falseServer: Docker Engine - Community Engine:  Version:          18.09.0  API version:      1.39 (minimum version 1.12)  Go version:       go1.10.4  Git commit:       4d60db4  Built:            Wed Nov  7 00:55:00 2018  OS/Arch:          linux/amd64  Experimental:     true

从 docker hub 上找到 MySQL 的镜像,查询得到 MySQL 的版本主要有 5.6 5.7 和 8.0。

下面我们分别拉取镜像进行启动

docker pull mysql:5.6docker pull mysql:5.7docker pull mysql:8.0

mysql 是官方的镜像,冒号后面跟的是版本号。为了方便,我们把三个 mysql 的容器分别叫做 mysql56, mysql57, mysql80

docker run -p 3316:3306 --name mysql56 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.6docker run -p 3317:3306 --name mysql57 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7docker run -p 3318:3306 --name mysql80 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0

-p 3316:3306 是把容器的3306端口映射到本机的3316端口

–name 是给运行的容器一个别名
-e MYSQL_ROOT_PASSWORD=123456 是初始化 MySQL 的密码

这样的话我们连接 MySQL 的命令就是下面的

mysql --port 3316 -uroot -h127.0.0.1 -p123456mysql --port 3317 -uroot -h127.0.0.1 -p123456mysql --port 3318 -uroot -h127.0.0.1 -p123456

但是这样可能不太行。

因为直接从外面连 MySQL 可能是没有权限的

我们先进入容器

docker exec -it mysql80 bash

这样就相当于进入了容器中的 bash

mysql -uroot -p123456

进入 MySQL

update mysql.user set host="%" where user="root";flush privileges;

这样就可以了。

一般情况下 MySQL5.6 和 MySQL5.7 应该是没问题了,但是 MySQL8.0 的密码验证方式变了,我们应该要改一下

update mysql.user set host="%" where user="root";ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';flush privileges;

这样就大功告成

$ mysql --port 3318 -uroot -h127.0.0.1 -p123456Warning: Using a password on the command line interface can be insecure.Welcome to the MySQL monitor.  Commands end with ; or \g.Your MySQL connection id is 49Server version: 8.0.13 MySQL Community Server - GPLCopyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> select version();+-----------+| version() |+-----------+| 8.0.13    |+-----------+1 row in set (0.01 sec)

最后我们看一下 docker 其他常用的命令

命令 功能
docker ps 查看正在运行的容器
docker ps -a 查看所有的容器
docker stop mysql56 停止 mysql56 这个容器
docker start mysql56 启动 mysql56 这个容器
docker images 查看 docker 所有镜像
docker image list 同上
docker rm mysql56 删除 mysql56 这个容器
docker rmi mysql:5.6 删除 mysql 5.6 版本的 image

原文链接

posted on
2019-03-11 13:39 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lonelyxmas/p/10510108.html

你可能感兴趣的文章
python 发邮件
查看>>
GraphQL入门
查看>>
幸福框架:应当如何使用和处理异常
查看>>
MQ:Introducing Advanced Messaging
查看>>
ok6410 android driver(11)
查看>>
【H3 BPM工作流程管理产品小故事】第五篇 必填与水印文本
查看>>
遥测的死区
查看>>
ORACLE百万记录SQL语句优化技巧
查看>>
iOS Core Animation学习总结(3)--动画的基本类型
查看>>
encodeURI()和encodeURIcomponent()的共同点和不同点
查看>>
ISO9126软件质量模型
查看>>
Android 关于expandableListView childrenView 点击改变颜色
查看>>
网络运维所有知识总结篇
查看>>
jasperreport_填充Report Templates
查看>>
phonegap 开发指南系列----简介(2)
查看>>
剑指offer——二叉树深度
查看>>
《漫画:这两个愿望我实现了》,长大后我成了程序猿
查看>>
有关于string的一些用法
查看>>
数据结构与算法-queue
查看>>
dll注入
查看>>