|
|
|
проблема localhost localhost.localdomain и им подобных под Linux
|
|||
|---|---|---|---|
|
#18+
Добрый день, коллеги. Уже второй раз получаю грабли в самом простом для прохода месте... как оказывается на Linux Java зачем то при некоторых операциях пытается провести преобразование localhost -> IP. А если не получается, то к сожалению приложение падает совсем с другой ошибкой, и нет никакого намека на эту ... ЕРЕСЬ. Может вы подскажете в каких случаях происходит это пребразование при работе web приложения. Проблемные случаи у себя (OS RHEL 5 & Ubuntu 7.10): 1. MySQL Connector/J 2. Spring Webflow Лечение прописать в /etc/hosts следующее: 127.0.0.1 localhost localhost.localdomain <machine_name>.localhost <machine_name>.<machine_domain> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2007, 16:14:40 |
|
||
|
проблема localhost localhost.localdomain и им подобных под Linux
|
|||
|---|---|---|---|
|
#18+
Вопрос в общем: из за чего подобный бред происходит и в каких еще случаях подобные проблемы происходили? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2007, 16:40:18 |
|
||
|
проблема localhost localhost.localdomain и им подобных под Linux
|
|||
|---|---|---|---|
|
#18+
VoDAВопрос в общем: из за чего подобный бред происходит? MySQL Connector/J это JDBC-драйвер 4-го типа, где то в его настройках Вы написали "jdbc:mysql://localhost/имяБД", вот теперь вопрос откуда система узнает что такое localhost? вот тут и понадобится библиотека resolv которая определит по имени ip-адрес. Resolv считает из /etc/hosts прописанные там имена и вернет драйверу ip-адрес 127.0.0.1. Можно было в настройках драйвера написать: "jdbc:mysql://127.0.0.1/имяБД" и проблема с резолвом имен исчезла бы, но возможно возникла бы проблема с правами в БД MySQL :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2007, 17:20:25 |
|
||
|
проблема localhost localhost.localdomain и им подобных под Linux
|
|||
|---|---|---|---|
|
#18+
А чем не нравится прописание localhost в hosts? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2007, 11:11:52 |
|
||
|
проблема localhost localhost.localdomain и им подобных под Linux
|
|||
|---|---|---|---|
|
#18+
mors78А чем не нравится прописание localhost в hosts? ПРоблема в том, что пришлось написать: 127.0.0.1 localhost localhost.localdomain <machine_name>.localhost <machine_name>.<machine_domain> А это не только локал-хост + при любом боевом / тестовом деплое на свежий сервер это нужно проверять... Плюс сам эксепшен шел просто обалденный... только гугление помогло понять в чем глюк. А если ты у заказчика и нет Интернета??? А если в деплой-тиме забыли про подобную "особенность". может попортить много крови, хотя ИМХО это рудимент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2007, 16:43:21 |
|
||
|
проблема localhost localhost.localdomain и им подобных под Linux
|
|||
|---|---|---|---|
|
#18+
VoDAможет попортить много крови, хотя ИМХО это рудимент. - что "рудимент"? система DNS? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2007, 16:55:11 |
|
||
|
проблема localhost localhost.localdomain и им подобных под Linux
|
|||
|---|---|---|---|
|
#18+
Kachalov VoDAможет попортить много крови, хотя ИМХО это рудимент. - что "рудимент"? система DNS? является ли адекватным транслирование localhost в 127.0.0.1 ? ИМХО localhost - это ВСЕГДА 127.0.0.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2007, 14:35:21 |
|
||
|
проблема localhost localhost.localdomain и им подобных под Linux
|
|||
|---|---|---|---|
|
#18+
VoDAИМХО localhost - это ВСЕГДА 127.0.0.1 - скажите об этом разработчикам операционных систем :) а если Ваше IMHO возникло на основе общения с ОС Windows, поищите там файл C:\WINDOWS\system32\drivers\etc\hosts, удалите из него единственную не закомментированную строчку и Вы поймете что "localhost" не вечен :) - почитайте про систему DNS, это расширяет кругозор и позволяет понять имя вторично, а ip-адрес первичен. Если система DNS не работает (а кто сказал что она обязательно должна поддерживаться на уровне ОС?) или неправильно настроена (ваш случай), то и "localhost" для системы ничего не значит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2007, 15:53:05 |
|
||
|
проблема localhost localhost.localdomain и им подобных под Linux
|
|||
|---|---|---|---|
|
#18+
Kachalov VoDAИМХО localhost - это ВСЕГДА 127.0.0.1 - скажите об этом разработчикам операционных систем :) а если Ваше IMHO возникло на основе общения с ОС Windows, поищите там файл C:\WINDOWS\system32\drivers\etc\hosts, удалите из него единственную не закомментированную строчку и Вы поймете что "localhost" не вечен :) - почитайте про систему DNS, это расширяет кругозор и позволяет понять имя вторично, а ip-адрес первичен. Если система DNS не работает (а кто сказал что она обязательно должна поддерживаться на уровне ОС?) или неправильно настроена (ваш случай), то и "localhost" для системы ничего не значит.Да знаю я про hosts in Windows. Сам им пользуюсь для разного рода хаков. К примеру я могу назвать переменную почти как хочу... но при этом не могу назвать ее int. Почему? потому что зарезервированное слово. При этом я использую зарезервированное слово localhost, который всегда должен указывать на мою машину, и для этого случая можно даже не использовать DNS для этого. Есть ли примеры когда localhost не 127.0.0.1 (не обратная петля) и это адекватно и нужно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2007, 18:10:17 |
|
||
|
проблема localhost localhost.localdomain и им подобных под Linux
|
|||
|---|---|---|---|
|
#18+
VoDAЕсть ли примеры когда localhost не 127.0.0.1 (не обратная петля) и это адекватно и нужно? - нет, так как localhost это зарезервированное доменное имя и иное его использование было бы не правильным ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.09.2007, 22:00:34 |
|
||
|
проблема localhost localhost.localdomain и им подобных под Linux
|
|||
|---|---|---|---|
|
#18+
Kachalov вот теперь вопрос откуда система узнает что такое localhost ? вот тут и понадобится библиотека resolv которая определит по имени ip-адрес. Resolv считает из /etc/hosts прописанные там имена и вернет драйверу ip-адрес 127.0.0.1. Можно было в настройках драйвера написать: "jdbc:mysql://127.0.0.1/имяБД" и проблема с резолвом имен исчезла бы, но возможно возникла бы проблема с правами в БД MySQL :) Kachalov VoDAЕсть ли примеры когда localhost не 127.0.0.1 (не обратная петля) и это адекватно и нужно? - нет, так как localhost это зарезервированное доменное имя и иное его использование было бы не правильным Мне так тоже казалось, теперь вы развеяли мои сомнения по поводу зарезервированности localhost. Но если localhost зарезервированное доменное имя - но нафига его ресолвить??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2007, 14:47:52 |
|
||
|
проблема localhost localhost.localdomain и им подобных под Linux
|
|||
|---|---|---|---|
|
#18+
VoDAНо если localhost зарезервированное доменное имя - но нафига его ресолвить??? - зарезервированное это не значит что обязательное к использованию. ОС не обязана реализовывать сетевые функции и не обязана осуществлять DNS преобразования, но если она это делает, то имя localhost можно использовать только для целей указанных в RFC. А что касается Вашего случая - не валите с больной головы на здоровую! Вы неправильно настроили /etc/hosts и пытаетесь предъявить претензии к разработчикам ОС. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.09.2007, 15:58:18 |
|
||
|
проблема localhost localhost.localdomain и им подобных под Linux
|
|||
|---|---|---|---|
|
#18+
Kachalovзарезервированное это не значит что обязательное к использованию. ОС не обязана реализовывать сетевые функции и не обязана осуществлять DNS преобразования, но если она это делает, то имя localhost можно использовать только для целей указанных в RFC. А что касается Вашего случая - не валите с больной головы на здоровую! Вы неправильно настроили /etc/hosts и пытаетесь предъявить претензии к разработчикам ОС. Для меня загадка почему в принципе JVM / Java пытается зарезервированное слово ресолвить. :'( И почему при наличии записи в /etc/hosts 127.0.0.1 localhost У меня падает приложение... :( PS я правильно внес запись в hosts? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2007, 15:09:55 |
|
||
|
проблема localhost localhost.localdomain и им подобных под Linux
|
|||
|---|---|---|---|
|
#18+
VoDAДля меня загадка почему в принципе JVM / Java пытается зарезервированное слово ресолвить. :'( - причем ту Java? Вы подставили доменное имя "localhost" и JVM обратилась к нативным функциям ОС для резолва имени. Уже устал говорить что зарезервированное это не значит обязательно поддерживаемое. Пример: слово "goto" зарезервировано в Java, но не используется. VoDA И почему при наличии записи в /etc/hosts 127.0.0.1 localhost У меня падает приложение... :( - мне очень жаль, но возможно файл hosts у Вас вообще не читается, так как его использование зависит от настроек /etc/host.conf ( FAQ ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.09.2007, 15:37:46 |
|
||
|
проблема localhost localhost.localdomain и им подобных под Linux
|
|||
|---|---|---|---|
|
#18+
Kachalov VoDA И почему при наличии записи в /etc/hosts 127.0.0.1 localhost У меня падает приложение... :( - мне очень жаль, но возможно файл hosts у Вас вообще не читается, так как его использование зависит от настроек /etc/host.conf ( FAQ ) Читается, читается :) Проблема в том, что при записи "jdbc:mysql:// localhost /имяБД" в JDBC при /etc/hosts 127.0.0.1 localhost система падает со странным воплем для работы /etc/hosts должен выглядеть так: 127.0.0.1 localhost localhost.localdomain Если же вы редактировали имя машины (а как иначе работать в корпоративной среде), то /etc/hosts должен выглядеть так: 127.0.0.1 localhost localhost.localdomain <machine_name>.localdomain Что характерно для Windows нет такой проблемы, т.е. то же самое приложение работает с hosts 127.0.0.1 localhost PS Kachalov я с уважением отношусь к вашим постам, но вы похоже не поняли в чем моя притензия. Она заключается в том, что в некоторых случаях работа приложения различается, т.е. получается недо-кроссплатформенность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 12:30:13 |
|
||
|
проблема localhost localhost.localdomain и им подобных под Linux
|
|||
|---|---|---|---|
|
#18+
VoDAпри /etc/hosts 127.0.0.1 localhost система падает со странным воплем - вопль в студию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 13:04:01 |
|
||
|
проблема localhost localhost.localdomain и им подобных под Linux
|
|||
|---|---|---|---|
|
#18+
Kachalov VoDAпри /etc/hosts 127.0.0.1 localhost система падает со странным воплем - вопль в студию Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 18:37:29 |
|
||
|
проблема localhost localhost.localdomain и им подобных под Linux
|
|||
|---|---|---|---|
|
#18+
На всякий случай. описаны похожие проблемы: http://sourceforge.net/forum/message.php?msg_id=3134194 http://sourceforge.net/forum/message.php?msg_id=3150857 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 19:10:45 |
|
||
|
проблема localhost localhost.localdomain и им подобных под Linux
|
|||
|---|---|---|---|
|
#18+
VoDAКак мне узнать из ЭТОГО, что на самом деле программа правильная... нужно только поправить hosts java.net.ConnectException: Connection refused - проблема с сетевым соединением, варианты: неверный хост, неверный порт (кстати порт указываете? а то по дефолту Connector/J использует 3306, а конкретного хостера/админа настройки порта для MySQL могут отличиться и переносимость опять же потеряется), сокет закрыт файрволом, и еще один случай (не Ваш, но ошибка та же) - БД закрыла соединение из-за того что сработал connection timeout (характерная проблема при использовании пулов). Так что в программе нужен какой то диалог говорящий о необходимости посмотреть сетевые настройки. Соответственно методика поиска проблемы: 1. ping localhost 2. netstat -a 3. telnet >o localhost 3306 4. проверка настроек пула (если соединение рвется через некоторое время) Если Вы уверены что БД всегда будет находиться на той же машине что и приложение, лучше зашейте в код ip-адрес: "jbdc:mysql://127.0.0.1:порт/ИмяБД" тем самым Вы избегаете проблем с резолвом имен в DNS. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.09.2007, 20:15:37 |
|
||
|
|

start [/forum/topic.php?fid=59&gotonew=1&tid=2144617]: |
0ms |
get settings: |
14ms |
get forum list: |
22ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
59ms |
get topic data: |
16ms |
get first new msg: |
10ms |
get forum data: |
4ms |
get page messages: |
76ms |
get tp. blocked users: |
2ms |
| others: | 311ms |
| total: | 526ms |

| 0 / 0 |
