通过 Docker 安装 MySQL

通过 Docker 安装 MySQL,具体步骤如下:

1. 拉取 MySQL 镜像

首先要从 Docker Hub 获取 MySQL 镜像。以 MySQL 8.0 为例,可使用以下命令:

bash 复制代码
docker pull mysql:8.0

如果需要其他版本,比如 5.7,把标签修改一下即可:

bash 复制代码
docker pull mysql:5.7

2. 创建并运行 MySQL 容器

使用下面的命令创建容器,同时设置 root 密码和数据卷:

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

这里有几个参数需要说明:

  • --name mysql-server:给容器起名为 mysql-server。
  • -p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
  • -e MYSQL_ROOT_PASSWORD=your_password:设置 root 用户的密码,你要把your_password替换成实际使用的密码。
  • -v mysql-data:/var/lib/mysql:把容器内的 MySQL 数据挂载到名为 mysql-data 的卷上,这样可以保证数据的持久化。

3. 连接 MySQL 数据库

容器启动之后,你可以通过命令行客户端连接到 MySQL:

bash 复制代码
docker exec -it mysql-server mysql -u root -p

接着输入之前设置的 root 密码就能进入数据库了。

4. 创建新用户和数据库(可选)

进入 MySQL 后,建议创建一个专门的用户和数据库,而不是直接使用 root 用户:

sql 复制代码
CREATE DATABASE your_database;
CREATE USER 'your_user'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON your_database.* TO 'your_user'@'%';
FLUSH PRIVILEGES;

记得把your_databaseyour_useryour_password替换成你自己设定的值。

5. 配置文件挂载(可选)

如果你想自定义 MySQL 的配置,可以创建一个配置文件,然后挂载到容器中:

bash 复制代码
docker run -d \
  --name mysql-server \
  -p 3306:3306 \
  -e MYSQL_ROOT_PASSWORD=your_password \
  -v mysql-data:/var/lib/mysql \
  -v /path/to/my.cnf:/etc/mysql/my.cnf \
  mysql:8.0

要把/path/to/my.cnf替换成你本地配置文件的实际路径。

其他实用命令

  • 查看容器日志:

    bash 复制代码
    docker logs mysql-server
  • 停止容器:

    bash 复制代码
    docker stop mysql-server
  • 启动容器:

    bash 复制代码
    docker start mysql-server

按照以上步骤操作,你就能在 Docker 中成功安装并运行 MySQL 了。

相关推荐
m0_569531011 小时前
《K8s 网络入门到进阶:Service 与 Ingress 原理、部署方案及核心区别对比》
网络·容器·kubernetes
wxjlkh1 小时前
docker 搭建 grafana+prometheus 监控主机资源之node_exporter
docker·grafana·prometheus
xiaok2 小时前
GROUP BY进阶用法
mysql
李慕婉学姐2 小时前
【开题答辩过程】以《基于Android的健康助手APP的设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
android·java·mysql
qq_12498707532 小时前
基于springboot健康养老APP的设计与实现(源码+论文+部署+安装)
java·spring boot·后端·mysql·微信小程序·毕业设计
亚林瓜子3 小时前
mysql命令行手动导入csv数据到指定表
数据库·mysql·gui·csv·cli·db·import
杨浦老苏3 小时前
安全共享敏感信息的共享工具Hemmelig.app
docker·群晖·密码·阅后即焚
眠りたいです3 小时前
Docker:容器虚拟化技术基础-namespace,cgroups,资源管理与LXC
运维·docker·中间件·容器
一分半心动3 小时前
lnmp架构 mysql数据库Cannot assign requested address报错解决
linux·mysql·php
新手小白*3 小时前
K8s 中的 CoreDNS 组件
云原生·容器·kubernetes