无法连接数据库

来源:7-9 回顾与综合:命令行传参与配置模块结合

慕粉3946981

2023-06-14

yml 文件内容

# 指定了 Docker Compose 文件的版本。
version: '3.1'

# 定义了一组服务。
services:
  # 这是一个服务的名称,表示一个 MySQL 数据库容器
  db: 
    image: mysql # 指定了使用的 Docker 镜像为 mysql,即使用官方的 MySQL 镜像
    command: --default-authentication-plugin=mysql_native_password # 指定了容器启动时要执行的命令
    restart: always # 指定了容器在退出时总是自动重启
    environment: # 指定了容器的环境变量
      MYSQL_ROOT_PASSWORD: root # 置了 MySQL 的 root 用户的密码
  
  # 管理面板 表示一个 Adminer 容器
  adminer:
    image: adminer # 指定了使用的 Docker 镜像为 adminer
    restart: always # 指定了容器在退出时总是自动重启
    ports: # 指定了容器的端口映射
      - 8080:8080 # 将容器的 8080 端口映射到主机的 8080 端口上

图片描述

图片描述

我确定本地mysql密码是正确,但无法登录成功,如何解决?
最后一张图中连接数据库,连接的是本地的数据库还是docker里面的容器中的数据库?
如果是连接docker容器中的数据库,这边没有映射出端口应该不可能连接吧?

写回答

1回答

慕粉3946981

提问者

2023-06-14

哎,这块有点坑啊。需要将容器里面的端口映射到本机的端口里面,由于我本地已经有一个mysql所以我映射本地3307端口。
详细配置如下

# 指定了 Docker Compose 文件的版本。
version: '3.1'

# 定义了一组服务。
services:
  # 这是一个服务的名称,表示一个 MySQL 数据库容器
  db:
    image: mysql # 指定了使用的 Docker 镜像为 mysql,即使用官方的 MySQL 镜像
    command: --default-authentication-plugin=mysql_native_password # 指定了容器启动时要执行的命令
    restart: always # 指定了容器在退出时总是自动重启
    ports:
      - 3307:3306 # 主机端口映射到容器端口
    environment: # 指定了容器的环境变量
      MYSQL_ROOT_PASSWORD: root # 置了 MySQL 的 root 用户的密码
 
  # 管理面板 表示一个 Adminer 容器
  adminer:
    image: adminer # 指定了使用的 Docker 镜像为 adminer
    restart: always # 指定了容器在退出时总是自动重启
    ports: # 指定了容器的端口映射
      - 8080:8080 # 将容器的 8080 端口映射到主机的 8080 端口上


0
1
Brian
这没事啊,本地几万个端口,随便用,自己记得就好
2023-06-17
共1条回复

NestJS 入门到实战 前端必学服务端新趋势

近几年快速发展的Node.js框架,掌握未来前端工程师后端开发能力

569 学习 · 238 问题

查看课程