Медленное подключение к MySQL в Docker

Автор: Дмитрий Канн Чтение на минуту
Этот пост  на английском

На моём текущем проекте я разрабатываю приложение, использующее MySQL в качестве базы данных. Сама база данных крутится в Docker-контейнере, что очень удобно.

В какой-то момент приложение стало запускаться безумно долго, проверка показала, что каждое подключение к серверу MySQL стало занимать чуть не полминуты. Учитывая, что соединение устанавливалось несколько сотен раз, запуск приложения стал чуть-чуть слишком медленным.

После этого я потратил кучу времени, чтобы найти решение, и даже StackOverflow не мог мне помочь. Но в конце концов разобрался.

Всё дело, как я изначально, предполагал, в DNS: база данных пытается определить, какой хост к ней подключается. В моём случае это совершенно бессмысленная операция. Использование флага Докера --dns=127.0.0.1 не помогало.

Помог флаг самой MySQL --skip-name-resolve: проблема исчезла безвозвратно и соединение устанавливается в считанные миллисекунды.

Запускать контейнер можно примерно так:

docker run -e MYSQL_ROOT_PASSWORD=secret mysql:5.7.16 --skip-name-resolve

Не благодарите. ■

Подписаться на обновления блога:

Комментарии

Поделиться: