golang,go,博客,开源,编程
使用 Docker 安装 MySQL 是一种快速且简便的方式,不需要复杂的配置。你可以通过拉取 MySQL 镜像并运行容器来轻松启动 MySQL 数据库。下面是一步步的安装教程。
docker --version
拉取官方 MySQL 镜像 在终端或命令行窗口中运行以下命令,来拉取官方的 MySQL 镜像:
docker pull mysql:8.0
这个命令会从 Docker Hub 拉取最新的 MySQL 8.0 镜像。如果你需要其他版本,可以指定相应版本号。
查看已下载的镜像 拉取完成后,可以通过以下命令查看本地的镜像:
docker images
启动 MySQL 容器
使用 docker run
命令启动一个新的 MySQL 容器。以下是一个启动 MySQL 8.0 的示例命令:
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:8.0
解释:
--name mysql-container
:指定容器的名称(这里是 mysql-container
,你可以根据需求修改)。-e MYSQL_ROOT_PASSWORD=my-secret-pw
:设置 root 用户的密码(这里设置为 my-secret-pw
,请根据需要修改)。-d
:让容器在后台运行。mysql:8.0
:指定要使用的镜像版本(这里使用的是 MySQL 8.0 镜像)。查看运行中的容器 启动容器后,可以使用以下命令查看容器状态:
docker ps
如果 MySQL 容器正常启动,你会看到类似以下输出:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
a1b2c3d4e5f6 mysql:8.0 "docker-entrypoint.s…" 10 minutes ago Up 10 minutes 3306/tcp, 33060/tcp mysql-container
使用 MySQL 客户端连接到容器中的 MySQL 实例
你可以通过 docker exec
命令进入容器并使用 MySQL 客户端连接到 MySQL 数据库:
docker exec -it mysql-container mysql -u root -p
系统会提示你输入 root
用户的密码(你在运行容器时通过 MYSQL_ROOT_PASSWORD
设置的密码)。
示例:
Enter password: my-secret-pw
成功连接后,你将看到 MySQL 命令行界面,类似于:
mysql>
退出 MySQL 客户端 你可以使用 exit
命令退出 MySQL 客户端:
mysql> exit
默认情况下,MySQL 数据存储在容器内,但容器删除后,所有的数据也会丢失。因此,我们需要为 MySQL 配置持久化存储。
可以使用 Docker 卷来持久化存储 MySQL 数据。创建一个新的 Docker 卷:
docker volume create mysql-data
使用卷挂载来启动 MySQL 容器,并确保数据库数据在容器删除时不会丢失:
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -v mysql-data:/var/lib/mysql -d mysql:8.0
解释:
-v mysql-data:/var/lib/mysql
:将 mysql-data
卷挂载到容器中的 /var/lib/mysql
目录,该目录用于存储 MySQL 数据。如果你希望从本地或其他主机上远程连接到 MySQL,你可以将 MySQL 的默认端口 3306
映射到宿主机的端口。
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 -d mysql:8.0
解释:
-p 3306:3306
:将容器内的 3306 端口映射到宿主机的 3306 端口,允许从外部主机访问 MySQL。现在你可以使用任何 MySQL 客户端(例如 MySQL Workbench 或命令行客户端)连接到 MySQL 服务,连接地址为宿主机的 IP 地址或 localhost
(如果在本机运行 Docker)。
连接命令:
mysql -h localhost -u root -p
输入密码后即可连接到 MySQL。
docker stop mysql-container
docker rm mysql-container
docker rmi mysql:8.0
在启动 MySQL 容器时,除了设置 MYSQL_ROOT_PASSWORD
外,还可以使用以下环境变量进行其他配置:
MYSQL_DATABASE
:创建并初始化一个数据库。
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -e MYSQL_DATABASE=mydb -d mysql:8.0
MYSQL_USER
:创建一个新的 MySQL 用户。
docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -e MYSQL_USER=myuser -e MYSQL_PASSWORD=mypassword -d mysql:8.0
MYSQL_ALLOW_EMPTY_PASSWORD
:允许 root 用户使用空密码。
docker run --name mysql-container -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql:8.0
如果你希望通过 Docker Compose 来管理 MySQL 容器,可以创建一个 docker-compose.yml
文件,来定义 MySQL 服务。
docker-compose.yml
文件
version: '3.1'
services:
mysql:
image: mysql:8.0
container_name: mysql-container
environment:
MYSQL_ROOT_PASSWORD: my-secret-pw
ports:
- "3306:3306"
volumes:
- mysql-data:/var/lib/mysql
volumes:
mysql-data:
docker-compose up -d
docker-compose down
通过 Docker 安装 MySQL 是一种快速、简便且灵活的方法。它使得开发和生产环境中 MySQL 的安装和管理变得更加高效和方便。你可以通过 Docker 容器实现 MySQL 服务的快速部署、配置、持久化存储以及网络映射等操作。
希望这个教程对你有帮助!如果你有任何问题,请随时提问。