Docker 安装 MySQL

Docker 安装 MySQL

引言

Docker 是一个开源的应用容器引擎,它允许开发者打包他们的应用以及应用的依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。MySQL 是一个开源的关系型数据库管理系统,它是最流行的关系型数据库之一。本文将详细介绍如何在 Docker 中安装 MySQL,并配置其基本环境。

系统要求

在开始安装之前,请确保您的系统满足以下要求:

  • Linux 操作系统
  • Docker Engine 安装

安装 MySQL

1. 拉取 MySQL 镜像

首先,使用以下命令拉取 MySQL 镜像:

bash 复制代码
docker pull mysql:latest

2. 运行 MySQL 容器

接下来,使用以下命令运行一个 MySQL 容器:

bash 复制代码
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql

解释一下命令中的参数:

  • --name some-mysql:为容器指定一个名称。
  • -e MYSQL_ROOT_PASSWORD=my-secret-pw:设置 root 用户的密码。
  • -d:以守护进程模式运行容器。

3. 连接 MySQL 容器

使用以下命令连接到 MySQL 容器:

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

输入密码后,您将进入 MySQL 命令行界面。

配置 MySQL

1. 修改配置文件

MySQL 默认将配置文件存储在 /etc/mysql/my.cnf 中。为了提高安全性,您可以修改配置文件以禁用远程访问和更改默认的字符集。

bash 复制代码
docker cp /etc/mysql/my.cnf some-mysql:/etc/mysql/my.cnf
docker exec -it some-mysql vi /etc/mysql/my.cnf

找到以下行并取消注释:

ini 复制代码
#bind-address = 127.0.0.1

然后,找到以下行并修改字符集:

ini 复制代码
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci

保存并退出编辑器。

2. 重启 MySQL 服务

bash 复制代码
docker restart some-mysql

3. 创建用户和数据库

sql 复制代码
CREATE DATABASE mydatabase;
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypassword';
GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'%';
FLUSH PRIVILEGES;

这里,我们创建了一个名为 mydatabase 的数据库,并创建了一个名为 myuser 的用户,密码为 mypassword。然后,我们将所有权限授予该用户。

总结

本文介绍了如何在 Docker 中安装 MySQL,并配置了基本环境。通过使用 Docker,您可以轻松地部署和管理 MySQL 数据库,同时提高开发效率和系统稳定性。希望本文对您有所帮助。

相关推荐
程序喵大人7 小时前
【C++进阶】STL容器与迭代器 - 01 STL 容器先解决元素放在哪里
开发语言·c++·stl
cui_ruicheng7 小时前
Python从入门到实战(十六):多进程编程
开发语言·python
wdfk_prog9 小时前
嵌入式面试真题第 15 题:不可恢复异常后的通用崩溃快照、调用栈保存与离线分析架构
linux·开发语言·面试·架构
晴空了无痕9 小时前
从 Go 基础到 K8s:一条可落地的 Go 服务端成长路线
开发语言·后端·golang·kubernetes
神明不懂浪漫9 小时前
【第五章】Java中的继承与多态
java·开发语言
神州世通10 小时前
解密企业通信安全防线:Avaya Aura 三层安全架构深度解析
开发语言·php
AC赳赳老秦11 小时前
企业工商公开信息采集分析:OpenClaw 批量查询企业工商信息,生成企业画像报告
大数据·开发语言·python·自动化·php·deepseek·openclaw
qq_25183645711 小时前
基于java Web 动漫视频网站毕业论文
java·开发语言·前端
野生风长11 小时前
C++入门基础:从命名空间到引用与指针的全面解析
开发语言·c++
FoldWinCard11 小时前
D6 Python 基础语法 --- 保留关键字
开发语言·python