Docker中部署MySQL并启用远程访问教程

需积分: 5 1 下载量 63 浏览量 更新于2024-08-05 收藏 1KB MD 举报
"这篇文档介绍了如何使用Docker部署MySQL数据库并开启远程访问权限。通过Docker拉取MySQL的8.0.25版本镜像,然后创建并运行一个名为`mysql0`的容器,设置了数据卷挂载、环境变量以及端口映射。接着,通过SQL语句修改MySQL的用户认证规则,允许远程访问。" 在现代云计算环境中,Docker作为一种轻量级的容器化技术,被广泛用于部署和管理应用,包括数据库服务。本教程以MySQL数据库为例,展示了如何在Docker容器中快速部署和配置MySQL服务。 首先,我们拉取MySQL的官方镜像,具体版本是8.0.25,这可以通过运行`docker pull mysql:8.0.25`命令完成。该命令会从Docker Hub下载指定版本的MySQL镜像到本地。 然后,使用`docker run`命令启动一个新的容器。在这个例子中,我们用`-p 3306:3306`将主机的3306端口映射到容器的3306端口,这样可以从主机外部连接到MySQL服务。`--name mysql0`是为容器命名,便于管理和识别。`-v`选项用来挂载主机目录,如`$PWD/mysql0/conf:/etc/mysql/conf.d`,将主机的`mysql0/conf`目录挂载到容器的`/etc/mysql/conf.d`,使得我们可以自定义MySQL的配置文件。`-v $PWD/mysql0/logs:/logs`用于存储日志,`-v $PWD/mysql0/data:/var/lib/mysql`则用于持久化数据,防止数据丢失。最后,通过`-e MYSQL_ROOT_PASSWORD=123456abc`设置MySQL的root用户的初始密码。 在容器运行后,为了实现远程访问MySQL,我们需要对数据库进行一些额外的配置。通过执行SQL语句来改变用户认证规则: 1. `ALTER USER 'root'@'localhost' IDENTIFIED BY '密码' PASSWORD EXPIRE NEVER;` 这个命令设置root用户的密码(替换'密码'为你设置的密码),并取消密码过期。 2. `ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';` 这一步是更改root用户的认证插件为`mysql_native_password`,这是MySQL默认的认证方式。 3. `ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '新的密码';` 最后,这行命令允许任何主机(%代表任意IP地址)通过`root`用户登录,前提是使用`新的密码`(同样替换为实际密码)。 完成以上步骤后,MySQL数据库已经在Docker容器中成功部署,并且可以接受来自远程的连接请求。这种部署方式对于开发、测试环境尤其方便,同时也适用于生产环境,只要确保安全措施到位,比如使用强密码、网络隔离等。