前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Docker系列之MySQL安装教程

Docker系列之MySQL安装教程

作者头像
SmileNicky
发布2020-01-13 15:00:43
5600
发布2020-01-13 15:00:43
举报
文章被收录于专栏:Nicky's blogNicky's blog

Docker系列之MySQL安装教程

在这里插入图片描述
在这里插入图片描述

有了前面的基础教程Docker系列之常用命令操作手册之后,本博客记录一篇mysql的安装教程

mysql镜像查询命令

代码语言:javascript
复制
docker search mysql

几个关键参数解释一下:

  • INDEX docker.io就是docker官网
  • NAME 镜像的名称
  • DESCRIPTION 镜像描述
  • STARS 关注数目
  • OFFICIAL 是否官方
  • AUTOMATED 是否自动的

INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED docker.io docker.io/mysql MySQL is a widely used, open-source relati… 8930 [OK] docker.io docker.io/mariadb MariaDB is a community-developed fork of M… 3140 [OK] docker.io docker.io/mysql/mysql-server Optimized MySQL Server Docker images. Crea… 659 [OK] docker.io docker.io/percona Percona Server is a fork of the MySQL rela… 462 [OK] docker.io docker.io/centos/mysql-57-centos7 MySQL 5.7 SQL database server 66 docker.io docker.io/centurylink/mysql Image containing mysql. Optimized to be li… 61 [OK] docker.io docker.io/mysql/mysql-cluster Experimental MySQL Cluster Docker images. … 59 docker.io docker.io/deitch/mysql-backup REPLACED! Please use http://hub.docker.com… 41 [OK] docker.io docker.io/bitnami/mysql Bitnami MySQL Docker Image 35 [OK] docker.io docker.io/tutum/mysql Base docker image to run a MySQL database … 34 docker.io docker.io/schickling/mysql-backup-s3 Backup MySQL to S3 (supports periodic back… 28 [OK] docker.io docker.io/prom/mysqld-exporter 23 [OK] docker.io docker.io/linuxserver/mysql A Mysql container, brought to you by Linux… 22 docker.io docker.io/centos/mysql-56-centos7 MySQL 5.6 SQL database server 17 docker.io docker.io/circleci/mysql MySQL is a widely used, open-source relati… 16 docker.io docker.io/mysql/mysql-router MySQL Router provides transparent routing … 14 docker.io docker.io/arey/mysql-client Run a MySQL client from a docker container 13 [OK] docker.io docker.io/openshift/mysql-55-centos7 DEPRECATED: A Centos7 based MySQL v5.5 ima… 6 docker.io docker.io/fradelg/mysql-cron-backup MySQL/MariaDB database backup using cron t… 4 [OK] docker.io docker.io/genschsa/mysql-employees MySQL Employee Sample Database 3 [OK] docker.io docker.io/ansibleplaybookbundle/mysql-apb An APB which deploys RHSCL MySQL 2 [OK] docker.io docker.io/devilbox/mysql Retagged MySQL, MariaDB and PerconaDB offi… 2 docker.io docker.io/jelastic/mysql An image of the MySQL database server main… 1 docker.io docker.io/monasca/mysql-init A minimal decoupled init container for mysql 0 docker.io docker.io/widdpim/mysql-client Dockerized MySQL Client (5.7) including Cu… 0 [OK] [root@localhost ~]#

mysql镜像pull

代码语言:javascript
复制
# 不指定版本,默认latest版本
docker pull mysql

查看本地仓库镜像列表

代码语言:javascript
复制
docker images
在这里插入图片描述
在这里插入图片描述

运行mysql容器

代码语言:javascript
复制
docker run --name mysql01 -d mysql

查看运行的容器

代码语言:javascript
复制
docker ps

发现并没有mysql容器运行

在这里插入图片描述
在这里插入图片描述

查看所有的容器

代码语言:javascript
复制
docker ps -a

发现mysql容器并没有启动成功

在这里插入图片描述
在这里插入图片描述

查看对应容器的日志

代码语言:javascript
复制
docker logs c1a7aceff20b

发现如下报错,意思是要指定MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD其中之一,意思就是要设置密码,允许空密码,或者随机生成密码

在这里插入图片描述
在这里插入图片描述

删除容器

代码语言:javascript
复制
docker rm c1a7aceff20b

查看所有容器

代码语言:javascript
复制
docker ps -a

再次启动容器并指定端口映射3306

代码语言:javascript
复制
docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=11 -d mysql

查看,容器启动成功,如果出现name重复的情况,可以指定另外的name

在这里插入图片描述
在这里插入图片描述

看官方文档也找到了指定编码的启动方法

代码语言:javascript
复制
docker run -p 3306:3306 --name mysql02 -e MYSQL_ROOT_PASSWORD=11 -d mysql --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci

因为是最新版本,客户端登录时候会提示错误:

Error No.2058 Plugin caching_sha2_password could not be loaded

解决方法是,修改加密方式,进入mysql容器

代码语言:javascript
复制
docker exec -it mysql02 bash

mysql root登录

代码语言:javascript
复制
mysql -u root -p

修改加密规则

代码语言:javascript
复制
#修改加密规则 
ALTER USER 'root'@'%' IDENTIFIED BY '11' PASSWORD EXPIRE NEVER;

对于学习可以指定’root’@’%’,表示所有ip都能访问,对于生产安全性考虑,可以指定指定ip

代码语言:javascript
复制
#更新一下用户的密码 
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '11'; 

需要刷新权限,才起效

代码语言:javascript
复制
 #刷新权限
FLUSH PRIVILEGES;

重启一下密码,也可以不管

代码语言:javascript
复制
# 重置密码
alter user 'root'@'%' identified by '11';

再次登录测试成功

在这里插入图片描述
在这里插入图片描述

其它操作:

代码语言:javascript
复制
# 把主机的/conf/mysql文件夹挂载到 mysqldocker容器的/etc/mysql/conf.d文件夹里面,改mysql的配置文件就只需要把mysql配置文件放在/conf/mysql既可
docker run ‐‐name mysql03 ‐v /conf/mysql:/etc/mysql/conf.d ‐e MYSQL_ROOT_PASSWORD=my‐secret‐pw
‐d mysql:tag

详细操作,建议参考Docker官方手册,入门及其它docker教程可以参考我的Docker博客专栏

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-12-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档