Docker中部署MySQL并启用远程访问教程
需积分: 5 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容器中成功部署,并且可以接受来自远程的连接请求。这种部署方式对于开发、测试环境尤其方便,同时也适用于生产环境,只要确保安全措施到位,比如使用强密码、网络隔离等。
2021-09-25 上传
2021-01-20 上传
2024-03-10 上传
2021-04-29 上传
2022-05-21 上传
2023-03-13 上传
2023-03-13 上传
2023-01-09 上传
2024-03-11 上传
地球浪子
- 粉丝: 8
- 资源: 6
最新资源
- 火炬连体网络在MNIST的2D嵌入实现示例
- Angular插件增强Application Insights JavaScript SDK功能
- 实时三维重建:InfiniTAM的ros驱动应用
- Spring与Mybatis整合的配置与实践
- Vozy前端技术测试深入体验与模板参考
- React应用实现语音转文字功能介绍
- PHPMailer-6.6.4: PHP邮件收发类库的详细介绍
- Felineboard:为猫主人设计的交互式仪表板
- PGRFileManager:功能强大的开源Ajax文件管理器
- Pytest-Html定制测试报告与源代码封装教程
- Angular开发与部署指南:从创建到测试
- BASIC-BINARY-IPC系统:进程间通信的非阻塞接口
- LTK3D: Common Lisp中的基础3D图形实现
- Timer-Counter-Lister:官方源代码及更新发布
- Galaxia REST API:面向地球问题的解决方案
- Node.js模块:随机动物实例教程与源码解析