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

相关推荐
W.Buffer1 小时前
通用:MySQL-深入理解MySQL中的MVCC:原理、实现与实战价值
数据库·mysql
心态特好2 小时前
详解redis,MySQL,mongodb以及各自使用场景
redis·mysql·mongodb
一只小bit2 小时前
MySQL 库的操作:从创建配置到备份恢复
服务器·数据库·mysql·oracle
程序新视界7 小时前
MySQL中,IS NULL和IS NOT NULL不会走索引?错!
数据库·mysql·dba
简色8 小时前
题库批量(文件)导入的全链路优化实践
java·数据库·mysql·mybatis·java-rabbitmq
CS Beginner8 小时前
【Linux】Mysql的基本文件组成和配置
linux·运维·mysql
一水鉴天10 小时前
整体设计 逻辑系统程序 之18 Source 容器(Docker)承载 C/P/D 三式的完整设计与双闭环验证 之2
docker·架构·认知科学·公共逻辑
飞快的蜗牛12 小时前
利用linux系统自带的cron 定时备份数据库,不需要写代码了
java·docker
火星MARK12 小时前
k8s面试题
容器·面试·kubernetes
香吧香13 小时前
Docker Registry 使用总结
docker