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 数据库,同时提高开发效率和系统稳定性。希望本文对您有所帮助。

相关推荐
techdashen1 小时前
在 Async Rust 中实现请求合并(Request Coalescing)
开发语言·后端·rust
RSTJ_16251 小时前
PYTHON+AI LLM DAY FIFITY-THREE
开发语言·人工智能·python
JAVA社区1 小时前
Java进阶全套教程(一)—— 数据框架Mybatis详解
java·开发语言·面试·职场和发展·mybatis
UEBqbZvUB1 小时前
基于 Flask 框架开发的在线学习平台,集成人工智能技术,提供分类练习、随机练习、智能推荐等多种学习模式 HTTPS ECDHE 握手全解析
开发语言·flask·java-consul
qq_2518364571 小时前
基于java 安卓-RSS阅读系统毕业论文
android·java·开发语言
之歆1 小时前
Day15_JavaScript DOM 事件完全指南:从基础到实战(上)
开发语言·javascript·ecmascript
JAVA社区1 小时前
Java进阶全套教程(八)—— Docker超详细实战详解
java·运维·开发语言·docker·容器·面试·职场和发展
水木流年追梦1 小时前
大模型入门-RL基础
开发语言·python·算法·leetcode·正则表达式
.千余1 小时前
【Linux】Socket编程UDP
linux·运维·服务器·开发语言·网络协议·学习·udp