docker安装mysql8

上一篇提到了docker安装mysql5.7和mysql8有所不同,这一篇说一下mysql8的安装

1、宿主机创建映射目录

bash 复制代码
mkdir -p /data/mysql8/log
mkdir -p /data/mysql8/data
mkdir -p /data/mysql8/conf

这里我放在了/data/mysql8目录下

2、拉取mysql镜像

bash 复制代码
docker pull mysql:8.0.21

查看镜像

bash 复制代码
docker images

3、创建运行实例

bash 复制代码
docker run -p 13306:3306 --name mysql8 \
-v /data/mysql8/log:/var/log/mysql \
-v /data/mysql8/data:/var/lib/mysql \
-v /data/mysql8/conf:/etc/mysql \
--privileged=true \
-d mysql:8.0.21

参数说明:

  • -p 13306:3306 将容器的3306端口映射到主机的13306端口
  • -v /mysql/mysql8/conf:/etc/mysql 将配置文件夹挂载到主机
  • -v /mysql/mysql8/log:/var/log/mysql 将日志文件夹挂载到主机
  • -v /mysql/mysql8/data:/var/lib/mysql 将数据文件夹挂载到主机

4、查看运行容器

bash 复制代码
docker ps

5、设置密码

一般此时容器就可以顺利启动起来了,但是和mysql5.7不同的是,这次启动容器没有设置密码,因为多次试验后,即使使用了-e MYSQL_ROOT_PASSWORD='123456'也不会生效,需要进入容器内部设置初始化密码,有使用compose或者swarm部署的,可以参考下一章集群部署

执行

bash 复制代码
docker exec -it mysql8 bash

进入容器内部

执行

bash 复制代码
mysqladmin -u root password '123456'

另外设置完密码后,此时的root用户只能localhost访问,有需要远程访问的小伙伴可以继续执行

bash 复制代码
mysql -uroot -p
# 这里输入刚刚设置的密码

update user set host = '%' where user = 'root';
flush privileges;

执行完后执行exit退出数据库客户端,退出容器,本地连接测试即可。

相关推荐
wangjialelele9 分钟前
Linux中的进程管理
java·linux·服务器·c语言·c++·个人开发
SAP工博科技18 分钟前
SAP 公有云 ERP 多工厂多生产线数据统一管理技术实现解析
大数据·运维·人工智能
YongCheng_Liang21 分钟前
从零开始学虚拟化:桌面虚拟化(VDI)入门指南(架构 + 产品 + 部署)
运维·云计算
杜子不疼.28 分钟前
【Linux】库制作与原理(二):动态库的制作与使用
linux·运维·服务器
森焱森30 分钟前
嵌入式硬件工程师应知 白银快速分析报告
linux·c语言·arm开发·嵌入式硬件·去中心化
忆~遂愿33 分钟前
Runtime 上下文管理:计算实例的生命周期、延迟最小化与上下文切换优化
java·大数据·开发语言·人工智能·docker
消失的旧时光-194335 分钟前
Nginx 是什么?为什么它不写在代码里?——从 0 认识 Nginx
运维·服务器·nginx
BJ_Bonree37 分钟前
4月17日,博睿数据受邀出席GOPS全球运维大会2026 · 深圳站!
大数据·运维·人工智能
RisunJan37 分钟前
Linux命令-lpq(查看打印队列状态)
linux·运维·服务器
山君爱摸鱼39 分钟前
Linux-服务进程
linux·运维·服务器