طول کشیدن زمان اتصال به mysqli

پرسیده شده
فعالیت 1459 روز پیش
دیده شده 1195 بار
1

سلام وقتتون بخیر... من برای اتصال به پایگاه داده زمانی که میخواد صفحه connection.php لود بشه حدود 20 ثانیه صفحه برای لود شدنش طول میکشه... آیا همه چنین شرایطی دارن؟ چون دیدم استاد وقتی تو مرورگر این صفحه رو لود میکنن در حد زیر یک ثانیه لود میشه اما مال من 20 ثانیه رو حالت لود میچرخه تا باز بشه!!

فایل پیوست

علیرضا ابراهیمی
علیرضا ابراهیمی

11 اردیبهشت 99

2
حذف شده

بله. توو پاسخ نوشته بودم داخل کانکشن mysqli! (سرویس دیتابیس ارتباطی با مرورگر نداره)

علت هم اینه که وقتی localhost مینویسید، MySQL client عملیات host lookup رو انجام میده و دنبال IPv۶ میگرده واگر پیدا نشه، یک delay ایجاد میشه تا query قبلی به پایان برسه و ظاهرا یک time out هم اتفاق میوفته و بعد برمیگرده و دنبال IPv۴ میگرده. که شما بصورت مستقیم ۱۲۷.۰.۰.۱ رو بعنوان Host گذاشتید تا این عملیات انجام نشه. مشکل توو همین قسمت lookup هست که در بعضی از سیستم عامل ها در تعامل با dns resolver کند انجام میشه!

* از win۷ به بعد، localhost از طریق dns resolver ویندوز، مدیریت میشه و نیاز به فایل hosts ویندوز نیست.

 

فایل پیوست

محسن موحد

توسط

محسن موحد

11 اردیبهشت 99

حذف شده
درسته دقیقا همینا رو تو stackoverflow مطالعه کردم درسته ممنون...
علیرضا ابراهیمی

11 اردیبهشت 99

0
حذف شده

سلام.

در کانکشن mysqli بجای localhost از ۱۲۷.۰.۰.۱ استفاده کنید.

اگر مشکلتون ازین طریق برطرف شد، علتش رو میگم.

فایل پیوست

محسن موحد

توسط

محسن موحد

11 اردیبهشت 99

حذف شده
درود جناب موحد... خدمتت عرض کنم من از دامنه مجازی استفاده میکنم تو xampp... ولی بعید میدونم بابت این باشه...
علیرضا ابراهیمی

11 اردیبهشت 99

حذف شده
این موردی که گفتم ارتباطی به دامنه مجازی نداره! شما قراره به connector دیتابیس بگید Host ای که mysql روش ران هست، کجاست، اگر remote باشه که آدرس remote میدید ولی وقتی روی سیستم local هست یک loopback به سرور خودتون میزنید. حتی اگر روی یک vps باشه. ماجراش فرق میکنه.
محسن موحد

11 اردیبهشت 99

حذف شده
سرور که لوکاله و روی کامپیوتر خودمه... من با 127.0.0.1 هم امتحان کردم... ولی نتیجه ای نمیده بین 20 تا 30 ثانیه طول میکشه به mysqli کانکت بشه...
علیرضا ابراهیمی

11 اردیبهشت 99

حذف شده
فایل my.ini رو باز کنید و انتهای فایل این عبارت skip-name-resolve رو اضافه کنید و با این دستور DNS Lookup رو غیرفعال کنید. سرویس mysql رو restart کنید و با همون هاست 127.0.0.1 تست کنید! اگر نشد چک کنید که با PDO هم ببینید اسکریپت delay داره! اگر بازم delay داشت اصلا اتصال رو بردارید ببینید خود اسکریپت PHP بدون delay اجرا میشه یا نه!
محسن موحد

11 اردیبهشت 99

حذف شده
در مورد اینکه گفتید سرور لوکاله و روی سیستم خودمه! روی سرور هم اگر بود فرقی نمیکرد، وقتی mysql رو روی سرور نصب میکنید، درقسمت Host بازم میتونیم localhost رو بذاریم چون loopback به خود سرور هست.
محسن موحد

11 اردیبهشت 99

حذف شده
در مجموع راهکارهایی که گفتید هیچکدوم جواب نداد... بله اسکریپت های php مشکلی ندارن و به سرعت اجرا میشن... مشکل فقط برای کانکت به رابط هست که بین 20 تا 30 ثانیه برای اتصال زمان میبره...
علیرضا ابراهیمی

11 اردیبهشت 99

حذف شده
skip-name-resolve رو زیر مجموعه [mysqld] قرار بدید. من از ومپ استفاده میکنم، ساختارش یخورده متفاوته با xampp. بعد حتما هم چک کنید اصلا فایل کانفیگ تغییراتو اعمال میکنه روی mysql یا نه!
محسن موحد

11 اردیبهشت 99

0
حذف شده

این چرا پاسخ شد!

در کامنت ها درج شد.

فایل پیوست

محسن موحد

توسط

محسن موحد

11 اردیبهشت 99

0
حذف شده

خب تو stackoverflow بررسی کردم و مشکل رو رفع کردم... جناب موحد هم درست گفتن... اما باید برای رفع این مشکل، آی پی ۱۲۷.۰.۰.۱ رو تو کدهای کانکت به mysqli نوشت... من اشتباها رو آدرس بار مرورگر 127.0.0.1 رو تایپ میکردم که نتیجه نداشت. ولی وقتی کدم رو به این حالت تغییر دادم مشکل برطرف شد.

$mysqli = new mysqli("127.0.0.1","root","","world");

 

فایل پیوست

علیرضا ابراهیمی

توسط

علیرضا ابراهیمی

11 اردیبهشت 99