Почему подключение к серверу MySQL происходит так медленно?

Я использую JDBC для подключения к MySQL. Когда это вlocalhost:3306, все хорошо.

Но когда я перемещаю свое приложение на другой компьютер в интрасети и использую<Intranet-IP>:3306 для подключения к базе данных MySQL требуется около 1 минуты для успешного подключения к MySQL. Что с этим?

Ответы на вопрос(4)

--skip-name-resolve отлично работал для меня.

Чтобы сделать его постоянным, я просто добавляю эту строку в конец файлаmy.ini в[mysql] раздел:

skip-name-resolve

И вуаля! Транзакции сейчас летают!

Решение Вопроса

это может быть проблема DNS. Вы можете отключить поиск имени хоста DNS, запустивmysqld с--skip-name-resolve опция в файле конфигурации.

Читайте здесь для более подробной информации:http://dev.mysql.com/doc/refman/5.0/en/host-cache.html

 Ogier Schelvis26 сент. 2016 г., 14:44
Чтобы закончить свою историю (достигалось ограничение на количество символов в комментарии): я заменил запрос на левое соединение в основном запросе, и загрузка страницы снизилась с 40 до 0,5 секунд. Проблема возникла, потому что мне нужно было временно получить доступ к производственной базе данных из среды разработки.
 JYelton30 апр. 2012 г., 20:58
Просто быть чистым,--skip-name-resolve будет использоваться в качестве параметра командной строки при запуске mysql, тогда какskip-name-resolve (без двойного дефиса впереди) будет использоваться в файле конфигурации.
 acemtp26 янв. 2011 г., 16:18
У меня была эта проблема и действительно это была обратная проблема днс
 Ogier Schelvis26 сент. 2016 г., 14:41
Если включение skip-name-resolution не работает для вас, возможно, это не то соединение, которое вас тормозит. В моем случае я думал, что это тоже проблема с DNS, однако добавление skip-name-resolv не сработало, также CLI и Workbench выполняли запросы молниеносно. Оказалось, что человек, которому я унаследовал код, подумал, что было бы неплохо выполнить еще один запрос в цикле while, который перебрал результаты 1200+. Что, очевидно, не дало заметной задержки, если сервер БД находится на той же машине, но это происходит, когда вы работаете с удаленным сервером.
 NickSoft03 мая 2016 г., 10:47
Чтобы следовать соглашениям в конфигурационном файле, это должно бытьskip_name_resolve, хотя я думаю, с тире это тоже работает

если подключение IP6 включено, подключение к «localhost» может быть медленным, вместо этого используйте IP-адрес, 127.0.0.1. Это сработало для меня.

MySQL медленно подключиться проблема была решена с помощью этого решения

 user64528024 июл. 2013 г., 18:58
Спасибо! Это только что решило проблемный вопрос, который я разместил. Кто бы мог подумать, что IPv6 будет сильно портить последние версии MySQL.
 jmgardn211 июн. 2013 г., 22:08
Заметил эту проблему при устранении неполадок медленной установки MediaWiki. mysql_connect занимал почти секунду. Изменил конфигурацию с localhost на 127.0.0.1 и перешел с 1021ms на 7ms. Спасибо!

интернет, маршрутизация и т. д. замедляют ваше соединение.

Вместо этого вы должны поместить свою базу данных во внутреннюю сеть. Держите его локально и за своим большим брандмауэром. Конечно, вы можете иметь брандмауэр и безопасность между компьютерами. Я бы порекомендовал вам не подвергать свое подключение базы данных mysql к Интернету без фильтрации.

 Makach18 авг. 2009 г., 12:26
ах, я вижу, вы редактировали свой вопрос :) приятно видеть, что вы нашли ответ на свой вопрос.
 MemoryLeak18 авг. 2009 г., 11:40
это интранет IP!

Ваш ответ на вопрос