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

docker mysql挂载

在提供的 docker run 命令中,已经挂载了三个卷到 MySQL 容器中:日志目录、数据目录和配置目录。然而,还没有挂载一个包含 cube_admin.sql 文件的目录。要将 SQL 文件放入容器中并在 MySQL 中执行它,可以按照以下步骤操作:

步骤 1: 准备 SQL 文件
确保 cube_admin.sql 文件在主机系统上的某个目录中,例如 /path/to/your/sql/cube_admin.sql。

步骤 2: 挂载 SQL 文件所在的目录
需要在 docker run 命令中添加一个额外的 -v 选项来挂载包含 cube_admin.sql 文件的目录。假设想将主机上的 /path/to/your/sql/ 目录挂载到容器内的 /sql/ 目录,可以这样做:

sudo docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql/conf.d/ \
-v /sql/:/sql/ \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7

步骤 3: 使用 docker exec 执行 SQL 脚本
一旦容器运行,可以使用 docker exec 命令在容器内执行 mysql 客户端,并指定要执行的 SQL 文件。由于已经将 /path/to/your/sql/ 挂载到了 /sql/,可以在容器内通过 /sql/cube_admin.sql 路径访问该文件:

sudo docker exec -it mysql bash -c "mysql -u root -p < /sql/cube_admin.sql"

当运行此命令时,它将提示输入 MySQL root 用户的密码。由于在 docker run 命令中设置了 MYSQL_ROOT_PASSWORD=root,因此密码应该是 root。但是,出于安全考虑,不建议在命令行中直接输入密码。相反,应该交互式地输入密码,或者考虑使用更安全的方法来管理密码。

注意事项
确保 MySQL 容器正在运行,并且您有权访问它。
确保挂载的目录和文件权限正确,以便 MySQL 容器可以访问它们。
如果在容器启动后立即尝试执行 SQL 脚本,并且容器正在初始化数据库,则可能会遇到权限问题或数据库尚未就绪的情况。在这种情况下,请等待几分钟,然后再次尝试执行脚本。
出于安全考虑,避免在命令行中直接传递密码。考虑使用 Docker secrets、环境变量(通过适当的权限设置来限制访问)或其他身份验证机制来管理密码。但是,请注意,环境变量可能会在进程列表中暴露,因此应谨慎使用。

create database cube_admin;
use cube_admin;
source /sql/cube_admin.sql;
create database cube_goods;
use cube_goods;
source /sql/cube_goods.sql;
create database cube_order;
use cube_order;
source /sql/cube_order.sql;
create database cube_stock;
use cube_stock;
source /sql/cube_stock.sql;
create database cube_user;
use cube_user;
source /sql/cube_user.sql;
http://www.lryc.cn/news/506137.html

相关文章:

  • 顺序表-递增有序表合并
  • 【Qt】qt安装
  • CXF WebService SpringBoot 添加拦截器,处理响应报文格式
  • vue iframe进行父子页面通信并切换URL
  • 基于Spring Boot的摄影师分享交流社区
  • Web 毕设篇-适合小白、初级入门练手的 Spring Boot Web 毕业设计项目:电影院后台管理系统(前后端源码 + 数据库 sql 脚本)
  • Linux(网络协议和管理)
  • C++ 入门第 20 天:STL 容器之无序集合与无序多重集合
  • devops-部署Harbor实现私有Docker镜像仓库
  • rebase ‘A‘ onto ‘master‘ 和 merge ‘master‘ into ‘A‘有什么区别
  • Vulhub:Jackson[漏洞复现]
  • strongswan构建测试环境
  • 前端:金额高精度处理
  • 面试题整理3----nc命令的常见用法
  • Trimble天宝三维激光扫描仪在建筑工程竣工测量中的应用【沪敖3D】
  • IntelliJ IDEA 使用技巧与插件推荐
  • Oracle 技术精选学习
  • sqlilabs第三十关到第三十五关靶场攻略
  • windows免登录linux
  • matlab绘图时设置左、右坐标轴为不同颜色
  • springboot+javafx使用aop切面导致的fx:id不能被注入问题
  • 说说你对java lambda表达式的理解?
  • 优化你的 3D Tiles:性能与质量的平衡
  • 【数据结构——线性表】单链表的基本运算(头歌实践教学平台习题)【合集】
  • 设计模式之桥接模式:抽象与实现之间的分离艺术
  • 网络隧道与代理
  • 游戏关卡分析:荒野大镖客2雪山终战
  • Java 中的 LocalDateTime、DateTime 和 Date 的区别解析
  • MATLAB引用矩阵元素的几种方法
  • Linux、File System、Linux基本常用命令