Fatal error: Error raised at top level: NIO.SocketAddressError.unknown(

Fatal error: Error raised at top level: NIO.SocketAddressError.unknown(

大家好,我是 Vapor 新手,我正在尝试使用 Fluent 将 docker 容器中的 Vapor 应用程序连接到另一个 docker 容器中的 MySQL 数据库但我收到以下错误

unknown(host: "mysql_host", port: 3306)
Swift/ErrorType.swift:200: Fatal error: Error raised at top level: 
NIO.SocketAddressError.unknown(host: "mysql_host", port: 3306)

这是我在 configure.swift 上的配置:

app.databases.use(.mysql(hostname:"mysql_net", 
username:"sergio", 
password:"holaMundo", 
database:"vapor",
tlsConfiguration: .forClient(certificateVerification: .none)), as: .mysql)

这是我的 docker-撰写:

version: '3.7' 
services:
mysql:
  build:
    context: .
    dockerfile: Dockerfile
  container_name: bd
  restart: always
  ports:
   - 3306:3306
  environment: 
    MYSQL_ROOT_PASSWORD: "holaMundo"
    MYSQL_DATABASE: "vapor"
    MYSQL_USER: "sergio"
    MYSQL_PASSWORD: "holaMundo"
  volumes:
    - ./schemas:/var/lib/mysql:rw
networks:
  mysql_network:
    aliases:
      - mysql_host
volumes:
  schemas: {}
networks:
  mysql_network:
    name: mysql_net
    driver: bridge

您的数据库的主机名别名为 mysql_hostmysql_net。是网络名称。

请注意,您可以删除所有网络代码 - 默认情况下,服务在 compose 中联网在一起。您可以只使用 mysql 作为主机名