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

相关推荐
三块钱079413 分钟前
群晖docker部署Mattermost,对接openclaw
运维·docker·容器
这周也會开心26 分钟前
Redis与MySQL回写中的数据类型存储设计
数据库·redis·mysql
计算机学姐29 分钟前
基于SpringBoot的民宿预定管理系统【三角色+个性化推荐算法+数据可视化统计】
java·vue.js·spring boot·mysql·信息可视化·intellij-idea·推荐算法
qq_336313931 小时前
javaweb-web基础(springboot入门)
java·开发语言·mysql
周航宇JoeZhou1 小时前
JB2-7-HTML
java·前端·容器·html·h5·标签·表单
来来走走1 小时前
rocky linux 9.7安装mysql 8.4+
linux·数据库·mysql
怣502 小时前
MySQL多表连接完全指南:内连接与外连接超详细讲解
数据库·sql·mysql
专注VB编程开发20年2 小时前
python图片验证码识别selenium爬虫--超级鹰实现自动登录,滑块,点击
数据库·python·mysql
qinyia3 小时前
通过本地构建解决Cartographer编译中absl依赖缺失问题
linux·运维·服务器·mysql·ubuntu
霖霖总总3 小时前
[小技巧65]深入 InnoDB 页的逻辑存储结构:16KB 页的逻辑全景解析
数据库·mysql