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

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

На моём текущем проекте я разрабатываю приложение, использующее 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

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

См. также

Post image
Разработка в Yii/PHP/MySQL с использованием Docker
Post image
Собственный сервер Commento с Docker Compose
Post image
Как установить MySQL Workbench в Ubuntu 19.04
Post image
Семинар по Hugo на Eonics Open Hack Night — 21 ноября
Post image
Безбумажность, или Вам не нужно распечатывать этот PDF
Post image
Sound Switcher Indicator ‣ 2.2.2

Комментарии

Поделиться