2009-08-18 4 views
18

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

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

ответ

32

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

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

+0

Большое спасибо! – MemoryLeak

+0

У меня была эта проблема, и действительно, это была обратная задача dns – acemtp

+12

Чтобы быть понятным, '--skip-name-resolve' будет использоваться в качестве параметра командной строки при запуске mysql, тогда как' skip-name-resolve' (без двойного дефиса спереди) будет использоваться в файле конфигурации. – JYelton

1

брандмауэры, интернет, маршрутизация etc etc замедляет ваше соединение.

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

+0

это IP-адрес интранета! – MemoryLeak

+0

ах, я вижу, вы редактировали свой вопрос :) приятно видеть, что вы нашли ответ на свой вопрос. – Makach

7

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

my mysql slow to connect problem was solved by this solution

+0

Заметила эту проблему, устраняя медленную установку MediaWiki. mysql_connect занимал почти секунду. Изменил конфигурацию с localhost на 127.0.0.1 и перешел от 1021ms до 7ms. Благодаря! – jmgardn2

+0

Спасибо! Это просто решило проблему, которую я опубликовал. Кто знал, что IPv6 будет так много работать с последними версиями MySQL. – 2013-07-24 16:58:24

11

The --skip-name-resolve работал большой для меня.

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

skip-name-resolve 

и вуаля! Сделки теперь летают!

Смежные вопросы