使用mysql.connector.connect连接到MySQL数据库失败,没有错误要捕获

问题描述 投票:0回答:1

我正在使用python尝试连接到数据库。此代码有效,我的环境中的某些内容发生了变化,因此主机不存在/可访问。这是预期的。我正在努力解决的问题是,我似乎无法捕捉到这种情况发生的错误。这是我的代码:

def create_db_connection(self):
    try:
        message('try...')

        DB_HOST = os.environ['DB_HOST']
        DB_USERNAME = os.environ['DB_USERNAME']
        DB_PASSWORD = os.environ['DB_PASSWORD']

        message('connecting...')

        db = mysql.connector.connect(
            host=DB_HOST,
            user=DB_USERNAME,
            password=DB_PASSWORD,
            auth_plugin='mysql_native_password'
        )

        message('connected...')

        return db
    except mysql.connector.Error as err:
        log.info('bad stuff happened...')
        log.info("Something went wrong: {}".format(err))
        message('exception connecting...')
    except Exception as ex:
        log.info('something bad happened')
        message("Exception: {}".format(ex))

    message('returning false connection...')
    return False

我看到了消息('连接......')的电话,但之后没有任何消息。此外,我根本没有看到任何消息/日志。

为了知道数据库连接尝试失败,我还需要捕获/检查其他东西吗?

这是在AWS Lambda中运行的,并且一直工作,直到我更改了一些子网/等。关键是我想要抓住它不再能够连接。

python mysql
1个回答
0
投票

问题很可能是你的lambda函数在数据库连接超时之前超时。

首先,修改lambda函数执行60秒并进行测试。您应该在大约30秒后发现您将看到与数据库超时的连接。

要解决此问题,请修改数据库实例上的安全组以包括为lambda配置的安全组。使用此条目打开正确的端口3306

© www.soinside.com 2019 - 2024. All rights reserved.