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

时间:2019-04-15 23:28:28

标签: python mysql

我正在使用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

我看到了message('connecting ...')呼叫,但此后什么都没有。另外,除了消息/日志外,我什么也看不到。

我是否还需要捕获/检查其他内容才能知道数据库连接尝试失败了?

这在AWS Lambda内运行,并且一直有效,直到我更改了某些子网/等为止。关键是我想抓住它不再能够连接。

1 个答案:

答案 0 :(得分:0)

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

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

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