Applet MySQL serveriga ulanib bo'lmadi

Men MySQL ma'lumotlar bazasiga ulanadigan java appletini ishlab chiqyapman, applet mahalliy xostda yaxshi ishlaydi, lekin uni yuklaganimda va ishga tushirishga harakat qilganimda, "aloqa aloqasi xatosi serverga muvaffaqiyatli yuborilgan oxirgi paket 0 millisekund oldin edi" kabi xatoga yo'l qo'ydim. Haydovchi serverdan hech qanday paket olmadi". Men uni x10hosting va hostable-da sinab ko'rdim, agar kimdir yechimini bilsa, menga yordam bering ...


person Vipul    schedule 02.06.2011    source manba


Javoblar (2)


MySQL server portingiz haqiqatan ham hamma uchun ochiq ekanligiga ishonchingiz komilmi? Masalan, hammaga ochiq IP-manzilda va routerlaringiz/tarmoqlaringiz tomonidan bloklanmaganmi? Ehtimol, MySQL nusxangizga tashqi dunyodan kirish mumkin emas...

... shunday bo'lishi kerak. Appletning ma'lumotlar bazasi serveri bilan bevosita gaplashishi juda, juda, juda kamdan-kam hollarda mos keladi. Odatdagidek, applet veb-serveringizdagi o'rta daraja bilan gaplashadi, bu esa o'z navbatida ma'lumotlar bazasi serveri bilan gaplashadi. Buning xavfsizlik jihati bor (sizning o'rta darajangiz ma'lumotlar bazasiga turli xil hujumlardan himoya qilishi mumkin) va amaliy jihati bor: ehtimol siz umumiy tarmoq bo'ylab suhbatni minimal darajada ushlab turishni xohlaysiz va serveringiz to'planishi mumkin. bir nechta operatsiyalar natijalarini bitta to'plamga, so'ngra mijozga yuboradi.

Agar MySQL serveringiz haqiqatan ham tashqi dunyo uchun mavjud bo'lsa, uning xosti applet yuklangan xost bilan bir xilmi? Bu (imzolanmagan) appletlar uchun xavfsizlik talablaridan biri boʻlib, ular faqat oʻzlari yuklangan xostga tarmoq ulanishlarini ochishi mumkin. Ammo agar bu muammo bo'lsa, men sizdan xavfsizlik istisnosini olishingizni kutgan bo'lardim (agar Connector/J buni sizdan yashirmasa).

person T.J. Crowder    schedule 02.06.2011
comment
OK, bu muammo bo'lishi mumkin, lekin ma'lumotlar bazasini appletimga qanday ulashim mumkinligini tushuntirib bera olasizmi ... - person Vipul; 02.06.2011
comment
@Vipul: Veb-ilovalar arxitekturasi misollarini qidiring. Veb-ilovalar 3-darajali yoki n-darajali arxitekturalarning klassik namunasidir. Mijoz tomonidagi elementlar (veb-sahifalar, appletlar) sizning ma'lumotlar bazasi bilan gaplashadigan veb-serveringiz bilan gaplashadi. Sizning ma'lumotlar bazangizga hech qachon tashqi dunyodan to'g'ridan-to'g'ri kirish imkoni bo'lmasligi kerak. - person T.J. Crowder; 02.06.2011

Applet mijoz tomonida. Agar siz MySQL serveriga to'g'ridan-to'g'ri ulanishni istasangiz, bu appletni ochadigan har bir foydalanuvchi MySQL o'rnatilgan bo'lishi yoki masofaviy ma'lumotlar bazasiga kirish va hisobga olish ma'lumotlariga ega bo'lishi kerakligini anglatadi. Xavfsizlik devori kirishga ruxsat bergan bo'lsa ham, buni qilish juda yomon fikr. Agar shunday qilsangiz, hamma sizning ma'lumotlar bazasiga kirish huquqiga ega bo'ladi.

Shunday qilib, agar siz masofaviy ma'lumotlar bazasi bilan bog'lanmoqchi bo'lsangiz, serverga so'rovlar yuborish va ma'lumotlar bazasi natijalari asosida yaratilgan javoblarni olish uchun ba'zi protokollardan foydalaning (http eng oson, Servlet orqali). Masalan, http://yoursite.com/addRecord?name=foo&[email protected] ni chaqirish server tomonidagi dasturga MySQL-ga (mahalliy) ulanishni ochish va yozuvni kiritishni aytishi mumkin.

person Bozho    schedule 02.06.2011
comment
Ha, men masofaviy ma'lumotlar bazasi bilan bog'lanmoqchiman, lekin buni qanday qilishni tushuntirib bera olasizmi, chunki men yangi boshlovchiman :( - person Vipul; 02.06.2011
comment
...appletni ochgan har bir foydalanuvchi MySQL o'rnatilgan bo'lishi kerakligini anglatadi. Nima uchun? Connector/J ni applet liblari bilan tarqatishingiz mumkin. Men buni masofadanyaxshi fikr deb aytmayapman, lekin foydalanuvchilar MySQL-ni o'rnatishlari shart emas. - person T.J. Crowder; 02.06.2011
comment
Ha, men ilovamning kutubxonalari bilan Connector/J ni qo'shdim. lekin dasturni ishga tushirganimda va u ma'lumotlar bazasiga ulanishga harakat qilganda, u menga xabarda ko'rsatilgan xatoni beradi - person Vipul; 02.06.2011
comment
@T.J. Crowder @Vipul - ha, men aniqladim :) - person Bozho; 02.06.2011