#python #mysql
#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
Я вижу до вызова сообщения (‘connecting …’), но после этого ничего. Кроме того, я вообще не вижу никаких сообщений / журналов except.
Есть ли что-то еще, что мне нужно перехватить / проверить, чтобы узнать, что попытка подключения к БД завершилась неудачей?
Это выполняется внутри AWS Lambda и работало до тех пор, пока я не изменил некоторые подсети / etc. Главное, что я хочу, чтобы он больше не мог подключиться.
Ответ №1:
Проблема, скорее всего, в том, что время ожидания вашей лямбда-функции истекает до истечения времени ожидания подключения к базе данных.
Сначала измените лямбда-функцию на выполнение в течение 60 секунд и протестируйте. Вы должны обнаружить, что примерно через 30 секунд вы увидите тайм-аут подключения к базе данных.
Чтобы устранить эту проблему, измените группу безопасности на экземпляре базы данных, чтобы включить группу безопасности, настроенную для lambda. Используйте эту запись, чтобы открыть правильный порт 3306