docker灵活部署mysql

博客简要

用docker部署mysql,并将数据库映射到主机上,并增加远端访问mysql数据库

当你使用Docker运行MySQL时,并且希望将MySQL数据库的数据存储在宿主机(也就是运行Docker的主机)上的特定路径,你需要在启动容器时通过 -v--volume 参数来实现数据卷挂载。这样可以确保数据库的数据持久化,即使容器停止或删除,数据也不会丢失。

假设你已经在宿主机上创建了外部数据目录,例如 /path/to/mysql/data,要将这个目录作为MySQL容器内部的数据存储位置,你可以按照以下方式执行 docker run 命令:

直接运行docker容器

数据存在在host主机上,防止docker关闭数据清空

复制代码
docker run -d \
  --name=mysql-server \
  -v /path/to/mysql/data:/var/lib/mysql \
  -e MYSQL_ROOT_PASSWORD=your_password \
  -p 3306:3306 \
  mysql:tag

这里的各个参数含义:

  • -d 表示后台运行容器。
  • --name=mysql-server 给容器命名。
  • -v /path/to/mysql/data:/var/lib/mysql 将宿主机的 /path/to/mysql/data 目录映射到容器内的 /var/lib/mysql 目录,这是MySQL默认的数据存储位置。
  • -e MYSQL_ROOT_PASSWORD=your_password 设置MySQL root用户的密码。
  • -p 3306:3306 将宿主机的3306端口映射到容器的3306端口,以便外部能够访问MySQL服务。
  • mysql:tag 是你要拉取的MySQL镜像的标签,比如 mysql:latest(获取最新版)或 mysql:5.7(获取特定版本)。

如果你尚未拉取MySQL镜像,请先执行 docker pull mysql:tag 获取所需的镜像版本。

举例

复制代码
docker run -d \
  --name=mysql-server \
  -v /home/eve/mysqldb:/var/lib/mysql \
  -e MYSQL_ROOT_PASSWORD=jupping001 \
  -p 3306:3306 \
  mysql:8.0

进入容器设置远端访问

复制代码
docker exec -ti mysql-server /bin/bash
  • 进入数据库

    mysql -u root -p

  • 列出数据库

    show database;

  • 进入mysql数据库

    use mysql;

  • 依次执行下方命令,就可获取远程登录权限

    grant all on . to 'root'@'%';
    alter user 'root'@'%' identified with mysql_native_password by 'jumpping001';
    FLUSH PRIVILEGES;

以后重启mysql服务器不需要再出指定密码

复制代码
docker run -d \
  --name=mysql-server \
  -v /home/eve/mysqldb:/var/lib/mysql \
  -p 3306:3306 \
  mysql:8.0
相关推荐
正经教主27 分钟前
【docker基础】第一课、从零开始理解容器技术
docker·云原生·容器·eureka
better_liang1 小时前
每日Java面试场景题知识点之-MySQL索引
java·数据库·mysql·性能优化·索引
萌萌哒草头将军1 小时前
CloudDock(云仓):新一代开源NAS网络代理工具
服务器·网络协议·docker
AgCl231 小时前
MYSQL-4-DQL数据查询语言-3/14-15
数据库·mysql
别抢我的锅包肉1 小时前
【MySQL】第五节 - 事务实战详解:从基础到并发控制(附 Navicat 可运行实验脚本)
数据库·mysql
殷紫川1 小时前
避坑必看!MySQL 三大日志(redo/undo/binlog)底层原理全拆解,事务一致性再也不懵
mysql
AgCl232 小时前
MYSQL-5-DCL数据查询语言-3/16
数据库·mysql
想唱rap3 小时前
线程的同步与互斥
linux·运维·服务器·数据库·mysql
殷紫川3 小时前
干掉 90% 慢 SQL!MySQL 全链路排查与优化方法论,从执行计划到表结构全拆解
mysql
殷紫川3 小时前
MySQL InnoDB 锁机制全解:行锁 / 表锁 / 间隙锁 / 临键锁底层逻辑与死锁避坑指南
mysql