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 ...
Applet MySQL serveriga ulanib bo'lmadi
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).
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.