当前位置: 首页 > news >正文

Docker中部署安装MySQL 5.7.32的详细过程

1. docker下载mysql 安装包

docker pull mysql:5.7.32

2. 查看已下载的镜像

docker images

3. 创建本地数据库目录、配置文件以及日志目录(方便进行容器数据卷挂载)


因为mysql容器一旦销毁,数据库也就随之销毁,为了解决这个问题,docker官方提出了容器数据卷技术,就是在宿主机上新建一些目录与容器内的目录映射,当容器销毁时,宿主机上的目录文件不会消失,依然存在.

# 建立宿主机数据库目录
mkdir -p mysql/datadir# 建立宿主机数据库配置文件
mkdir mysql/conf# 建立宿主机数据库日志目录
mkdir mysql/log

注:我这个是在我项目目录下创建的。

4. 启动容器

docker run --name lmhmysql -p 3306:3306 -v /data/lmh/lmh/KG/mysql/datadir:/var/lib/mysql -v /data/lmh/lmh/KG/mysql/conf:/etc/mysql/conf.d -v /data/lmh/lmh/KG/mysql/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.32

参数解释:
-p 3306:3306  端口映射,将宿主机3306端口与容器3306端口做映射,这样就可以通过宿主机IP+端口访问容器的3306端口了 格式:-p 宿主机端口:容器端口

–name lmhmysql 指定容器名字为lmhmysql

-v mysql/datadir:/var/lib/mysql:对宿主机数据库目录与容器数据库目录进行映射挂载

-v mysql/conf:/etc/mysql/conf.d:对宿主机数据库配置文件与容器数据库配置文件进行映射挂载

-v mysql/logs:/var/log/mysql:对宿主机数据库日志与容器数据库日志进行映射挂载

-e MYSQL_ROOT_PASSWORD=123456 配置mysql的root账号的密码为123456(可以根据需要自行修改密码)

-d:后台执行 mysql:5.7.32 :镜像id,容器第一次启动要根据镜像来启动,所以镜像id必不可少。可以通过命令docker iamges查看镜像id

注: 此时报错可能是因为:

① 3306端口号已被占用。此时可以先将容器名删除,然后换个端口号。

docker: Error response from daemon: driver failed programming external connectivity on endpoint mysql (ba8f04eadcc4d8f3ef026f37d2e029980edf51f2ecc7d0f3e4913550e9a23d2e): Bind for 0.0.0.0:3306 failed: port is already allocated.

删除容器命令如下:

docker rm 容器名

换端口号:

docker run --name lmhmysql -p 3316:3306 -v /data/lmh/lmh/KG/mysql/datadir:/var/lib/mysql -v /data/lmh/lmh/KG/mysql/conf:/etc/mysql/conf.d -v /data/lmh/lmh/KG/mysql/logs:/var/log/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.32

② 容器名已存在。

docker: Error response from daemon: Conflict. The container name "/mysql" is already in use by container "317e17b8b0c6827bb15502e71960851826f752cf134aaa892c8f45a207eSee 'docker run --help'.

删除容器命令如下:

docker rm 容器名

5. 进入容器测试Mysql

进入MySQL容器:

docker exec -it lmhmysql bash

进入容器后,可以通过以下命令连接MySQL:

mysql -u root -p

输入密码root后,即可成功连接MySQL。

6.  设置远程连接权限

可以通过以下SQL语句设置权限:

 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;

注:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%':允许root用户从任意IP地址访问MySQL。

IDENTIFIED BY '123456':设置root用户的密码为123456

WITH GRANT OPTION:允许root用户授予其他用户权限。

刷新权限以使更改生效:

FLUSH PRIVILEGES;

7. 打开navicat,连接该服务器。导入excel文件。

以上便是所有部署的步骤,欢迎关注~ 后续也会更新一些其他实践过程中遇到的问题!

http://www.dtcms.com/a/326754.html

相关文章:

  • Rust面试题及详细答案120道(19-26)-- 所有权与借用
  • PTE之路--04文
  • java面试题准备
  • 【k近邻】Kd树的构造与最近邻搜索算法
  • 线程池知识点总结
  • Spring Cloud Gateway 路由与过滤器实战:转发请求并添加自定义请求头(最新版本)
  • 【QT】UI 开发全攻略:打造专业级跨平台界面
  • Android14 QS编辑页面面板的加载解析
  • 梯度裁剪总结
  • Python Day27 HTML 核心知识笔记及例题分析
  • 09-docker镜像手动制作
  • PG靶机 - Flu
  • 常见鱼饵制作方式
  • 在 X86_64(amd64) 平台上的docker支持打包构建多环境镜像并推送镜像到Harbor
  • AI Coding 概述及学习路线图
  • uploader组件,批量上传怎么设置实时滚动
  • Anti-Aliasing/Mip-NeRF/Zip-NeRF/multi-scale representation
  • 2.一维码+二维码+字符识别
  • OpenHarmony概述与使用
  • 基于大数据的个性化学习环境构建的研究与应用
  • Java前后端交互核心技术:Servlet与JSP深度解析
  • 【Altium designer】一键给多个器件添加参数
  • 2025年渗透测试面试题总结-13(题目+回答)
  • 如何选择一家靠谱的开发公司开发项目呢?
  • sql select语句
  • Python 高阶函数:filter、map、reduce 详解
  • WebMCP 技术文档——让 AI 助手与 Web 应用无缝交互的轻量级框架
  • 基于cursor工具与AI大模型,规范驱动的全自然语言软件开发工作流实现路径
  • 导入CSV文件到MySQL
  • webpark》》