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

相关推荐
程序喵大人42 分钟前
【C++入门】编译链接模型 - 07 链接器怎样把符号对上号
开发语言·c++·编译器·编译链接·链接器
微三云 - 廖会灵 (私域系统开发)1 小时前
供应链系统实战:多渠道订单聚合与分布式库存一致性方案总结
开发语言·分布式·php
学逆向的1 小时前
C 数据溢出与精度丢失
c语言·开发语言·网络安全
霸道流氓气质2 小时前
AgentFlow 入门与实战:Task-Based 并发、EWMA 动态调度与四道门禁的 Java 生产级编排
java·开发语言
释厄6233 小时前
错误无误公理——错误正确本同源都迭代定律——逆转有价值
android·开发语言·kotlin
2601_962885723 小时前
如何用 Python计算 CR能量指标(中间意愿指标)?
开发语言·python
临床数据科学和人工智能兴趣组3 小时前
在R语言的生态系统中,字符串处理一直是一个重要且复杂的任务
开发语言·正则表达式·r语言·r语言-4.2.1
蜗牛互联网3 小时前
Python调用Gemini Structured Outputs实现工单路由门禁
java·开发语言·人工智能·python
SEO_juper4 小时前
给网页做可引用性评分:判断内容够不够让 AI 引用(GEO 工具,附代码)
开发语言·人工智能·爬虫·python·seo·独立站
Wang's Blog4 小时前
Java 项目实战: 交友项目 - 产品定位、功能模块与客户端原型解读
java·开发语言·交友