无法连接数据库
来源: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 端口上
012023-06-17
相似问题