通过 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 了。

相关推荐
九皇叔叔2 小时前
K8S 资源菜单
docker·容器·kubernetes·k8s
wdfk_prog3 小时前
ROS教程08:从 TransportTCP::connect() 追到 TCPROS Connection Header、序列化与 Socket 数据传输
运维·缓存·docker·容器·ros
Zhu7583 小时前
docker环境快速部署postgresql数据库18及以上版本
postgresql·容器
百万蹄蹄向前冲4 小时前
密码都对Node.js却连不上Linux数据库
linux·mysql
华章酱4 小时前
MySQL幻读是怎么出现的
数据库·mysql·幻读
zoutao984 小时前
Gitea Actions 自定义 Runner 镜像与自动化部署实战
ci/cd·docker·gitea
浅念-4 小时前
Redis基础详解:单线程模型、String与Hash数据结构
服务器·数据库·redis·sql·mysql·nosql数据库·nosql
aramae5 小时前
MySQL内置函数(7)
开发语言·笔记·后端·mysql·其他
安易算力5 小时前
PUE优化工程实践:从1.5到1.2的制冷架构与气流组织改造路径
网络·python·容器·架构·kubernetes
这个DBA有点耶6 小时前
InnoDB索引组织表下,复合主键和自增主键的物理存储差异与选型对比
数据库·mysql·架构