首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法连接到'localhost‘上的MySQL服务器([Errno 99]地址不可用)

无法连接到'localhost‘上的MySQL服务器([Errno 99]地址不可用)
EN

Stack Overflow用户
提问于 2021-09-06 10:35:24
回答 1查看 350关注 0票数 0

当我试图从外部docker容器连接到MariaDB时,我得到了上面的错误。下面是我的docker-compose.yml文件:

代码语言:javascript
复制
version: '3'
services:
    mariadb:
        image: mariadb
        ports:
            - "127.0.0.1:3309:3306"
        volumes: 
            - mariadb_volume:/var/lib/mysql
        environment: 
            MYSQL_ROOT_PASSWORD: mypassword
            MYSQL_DATABASE: mydatabase
            MYSQL_USER: myuser
            MYSQL_PASSWORD: mypassword
        networks:
            - fastapi_network
            
    fastapi-dev:
        build: 
            context: .
            dockerfile: Dockerfile
        image: fastapi-dev:latest
        container_name: fastapi-dev
        command: /start-reload.sh
        volumes: 
            - ./src:/app/src
        ports:
            - 5000:80
        depends_on:
            - mariadb
        networks:
            - fastapi_network
     
volumes:
    mariadb_volume:
        driver: local
                      
networks:
  fastapi_network:
    external: true

数据库连接的数据库配置如下:

代码语言:javascript
复制
class DbSettings(BaseSettings):
    db_username:str = 'myuser'
    db_password: str = 'mypassword'
    db_host: str = 'localhost'
    db_port: int = '3306'
    db_name: str = 'mydatabase'

    engine_echo = True
    session_autocommit = False
    session_autoflush = False

    @property
    def db_conn_str(self) -> AnyUrl:
        return AnyUrl.build(
            scheme="mysql+pymysql",
            user=self.db_username,
            password=self.db_password,
            host=self.db_host,
            port=str(self.db_port),
            path=f"/{self.db_name}"
        )

在使用'docker-compose up‘部署容器后,我可以看到服务器完全启动并运行,如下所示:

代码语言:javascript
复制
mariadb_1              | 2021-09-06  8:24:10 0 [Note] mysqld: ready for connections.
mariadb_1              | Version: '10.6.4-MariaDB-1:10.6.4+maria~focal'  socket: '/run/mysqld/mysqld.sock'  port: 3306  mariadb.org binary distribution

考虑到服务器正在运行并接受连接,我不太明白代码出了什么问题。有人能在这方面给我一些建议吗?

EN

回答 1

Stack Overflow用户

发布于 2021-09-06 13:24:05

我刚刚发现了一个错误,db_host应该是'mariadb‘而不是'localhost’。在此更改之后,它现在可以工作了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69073124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档