【Docker】04 部署MySQL
从官网上拉取最新MySQL镜像:
docker pull mysql:latest
创建并运行一个MySQL镜像的容器
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
即使该容器实例运行失败,也表示它是创建成功的,已经存在

命令参数的解释?
-itd
-d: 后台运行容器,并返回容器ID
-i: 以交互模式运行容器,通常与 -t 同时使用;
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用; --name mysql-test
设置该容器实例的名称标识 -p 3306:3306
映射容器服务的 3306 端口到宿主机的 3306 端口,外部主机可以直接通过 宿主机ip:3306 访问到 MySQL 的服务 -e MYSQL_ROOT_PASSWORD=123456 mysql
设置 MySQL 服务 root 用户的密码。
如果物理机的已经运行了本地安装的MySQL并占用了3306端口,应该更改为3307或者其他端口
【如果这个容器异常无法使用,直接移除容器重新创建即可】
移除容器实例:
docker rm mysql-test

修改端口设置并重新执行运行命令
docker run -itd --name mysql-test -p 3307:3307 -e MYSQL_ROOT_PASSWORD=123456 mysql

我们访问MySQL容器,需要先进入这个容器:
docker exec -it 容器名称标识 bash

这里刚刚进入MySQL容器马上就退出了
再次启动就报错说容器没有运行
百度得知容器实例是因为Linux内存导致的
使用指令查看内存
free -h

算了玩不了。。。
然后使用TOP命令查看Linux所有进程使用情况:

发现本地安装的MYSQL服务内存占用高的离谱,于是立刻停止服务了
重新创建运行容器实例,这回正常了:

输入密码123456,访问成功:

使用本机的SQLyog访问测试,记住是3307端口
发现错误2003代码:

很可能是因为防火墙没开放这个端口
先退出容器:

防火墙开放3307端口,重启之后再看看

但是还是没有用,可能因为MYSQL8.021版本远程用户需要创建新用户才可以使用
进入容器实例,进入MySQL:
更改加密规则:
ALTER USER 'root'@localhost IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
创建一个远程用户:
CREATE USER 'daizhizhou'@'%' IDENTIFIED WITH mysql_native_password BY '123456';
然后赋予完整权限:
GRANT ALL PRIVILEGES ON *.* TO 'daizhizhou'@'%';

最后刷新权限:
flush privileges;
使用远程账号访问还是不行,但是到这里我才明白是因为之前设置的端口号原因导致的:
删除这个镜像应该使用这个端口配置,因为mysql默认3306端口,配置3307根本无法监听
所以需要由MySQL镜像的3306配置实际端口的3307:
docker run --name mysql -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql
但是又有新的问题:

这个好解决,回到上面创建新的用户并赋予所有权限,然后刷新权限,访问即可

终于反应过来那个配置的解释的话,这样的话就可以本机mysql和容器mysql共存了
【Docker】04 部署MySQL的更多相关文章
- 在Centos上安装docker,部署mysql数据库
何为docker? Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化. 本机环境 24小时不关机的Centos ...
- 利用Docker快速部署Mysql
写在前面 我又来更新了~~~,今天内容较少,主要是利用Docker快速部署Mysql和初始化数据 利用Docker下载Mysql 简洁明了,在命令提示符中输入 docker pull mysql:8. ...
- docker stack 部署 mysql 5.6
=============================================== 2018/7/1_第1次修改 ccb_warlock === ...
- Docker容器部署Mysql数据库服务器
本节会用到的Docker命令如下: docker images 查看mysql镜像id docker run -d -p xxxxxxxxxxxxxxx/zhufc/mysql:v2 通过镜像生成 启 ...
- docker环境部署mysql
参考文档 docker官方:https://hub.docker.com/_/mysql/?tab=description 部署步骤 1. 拉取镜像 这里我拉取了tag为5.7的镜像 docker p ...
- 如何利用 docker 快速部署 Mysql 服务
docker 基础教程不再多说,这里只着重讲如何使用 docker 部署 mysql 服务 docker 拉取 访问 dockerhub,搜索关键词 mysql,我这里选择 mysql-server, ...
- docker 安装部署 mysql(配置文件启动)
获取 mysql 镜像 docker pull mysql:5.6 docker images 创建容器 创建宿主机 redis 容器的数据和配置文件目录 # 创建宿主机 redis 容器的数据和配置 ...
- 在docker上部署mysql
1.拉取官方镜像5.6的版本.(查看有哪些版本,可以在阿里云的镜像仓库查看,我配置的镜像是阿里云的) docker pull mysql:5.6 2.查看拉取的镜像,获取镜像id docker ima ...
- Docker windows nanoserver/mysql镜像root用户密码错误
由于需要在Windows server上的Docker中部署mysql服务,为了方便起见所以在Docker hub找到了nanoserver/mysql (https://hub.docker.com ...
- 群晖DS218+部署mysql
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
随机推荐
- 《Android开发卷——程序自动登录》
Android程序的自动登录功能 因为是公司的项目,所以这里不方便说出项目名称,这里就说我在做这个项目中用到的一些功能或者叫技术问题吧. 咱们经常用的Android程序中有一个情况,就是当你第一次注册 ...
- Python中的属性
Python中的属性主要分为类属性,对象属性. 1.类属性 类属性:类所有,所有的实例对象都能够共享,类定义时就直接指定的属性,能通过类名和实力对象名访问,当当前的类属性被实例对象通过对象名.属性名的 ...
- 获取ImageView的触摸点所对应的UIImage的坐标
获取ImageView的触摸点所对应的UIImage的坐标 功能描述 实现前分析 注意事项 代码 求打赏 功能描述 在imageview上触摸图片,求对应UIImage的触摸点. 实现前分析 从ima ...
- 【electron-vite+live2d+vue3+element-plus】实现桌面模型宠物+桌面管理系统应用(踩坑)
脚手架 项目使用 electron-vite 脚手架搭建 ps:还有一个框架是 electron-vite ,这个框架我发现与pixi库有冲突,无法使用,如果不用pixi也可以用这个脚手架. node ...
- Spring Reactor基本介绍和案例
1. Reactor 对比 1.1 Reactor 线程模型 Reactor 线程模型就是通过 单个线程 使用 Java NIO 包中的 Selector 的 select()方法,进行监听.当获取到 ...
- c 语言学习第五天
break 语句 在循环体中使用 break,可以跳出循环 打印 10 以内的数. #include<stdio.h> int main(){ int i,j = 20; for(i = ...
- HTB- Archetype
端口扫描 nmap -sV -sT 10.129.1.1 smbclint smbclient -L 10.129.149.214 获取密码 smbclient //10.129.149.214/ba ...
- pyspark集成访问hive数据踩坑记录
当前环境anaconda3.python3.9.13.jupyter 需要安装的pyspark.py4j pyspark和py4j的离线安装包地址Links for pyspark (tsinghua ...
- 实用!一键生成数据库文档的神器,支持MySQL/SqlServer/Oracle多种数据库
Screw(螺丝钉)是一款简洁好用的数据库表结构文档生成工具,它的特点是:简洁.轻量.设计良好.多数据库支持.多种格式文档.灵活扩展以及支持自定义模板,对于有经常要进行数据库设计.评审.文档整理等需求 ...
- 将传统应用带入浏览器的开源先锋「GitHub 热点速览」
现代浏览器已经不再是简单的浏览网页的工具,其潜能正在通过技术不断地被挖掘和扩展.得益于 WebAssembly 等技术的出现,让浏览器能够以接近原生的速度执行非 JavaScript 语言编写的程序, ...