یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دورهها
استفاده از تخفیفهاسلام من میخوام به دیتا بیس دسترسی داشته باشم برای header
ولی وقتی کد رو مینویسم صفحه تو بارگذاری گیر میکنه و بعد از چند دقیقه ارور طولانی میاره
Warning: Uncaught PDOException: PDO::construct(): Error while reading greeting packet. PID=4912 in C:\xampp\htdocs\php-course-blog\include\db.php:6 Stack trace: #0 C:\xampp\htdocs\php-course-blog\include\db.php(6): PDO->construct('mysql:host=loca...', 'root', '') #1 C:\xampp\htdocs\php-course-blog\include\layout\header.php(4): include('C:\xampp\htdocs...') #2 C:\xampp\htdocs\php-course-blog\index.php(2): include('C:\xampp\htdocs...') #3 {main} Next PDOException: SQLSTATE[HY000] [2006] MySQL server has gone away in C:\xampp\htdocs\php-course-blog\include\db.php:6 Stack trace: #0 C:\xampp\htdocs\php-course-blog\include\db.php(6): PDO->__construct('mysql:host=loca...', 'root', '') #1 C:\xampp\htdocs\php-course-blog\include\layout\header.php(4): include('C:\xampp\htdocs...') #2 C:\xampp\htdocs\php-course-blog\index.php(2): include('C:\xampp\htdocs...') #3 {main} thrown in C:\xampp\htdocs\php-course-blog\include\db.php on line 6
Fatal error: Maximum execution time of 120 seconds exceeded in C:\xampp\htdocs\php-course-blog\include\layout\header.php on line 4
این ارورها نشاندهنده مشکلاتی در اتصال به دیتابیس و پیکربندی PHP یا MySQL شما هستند. به طور خاص، خطاهای زیر را میتوان تشخیص داد:
1.خطای PDOException: "Error while reading greeting packet:
این خطا معمولاً زمانی رخ میدهد که اتصال به سرور MySQL به درستی برقرار نمیشود. دلایل معمول شامل:
db.php
).خطای "MySQL server has gone away:
این خطا معمولاً به دلیل قطع اتصال به سرور MySQL رخ میدهد، ممکن است به دلایل زیر باشد:
wait_timeout
یا interactive_timeout
در MySQL که اتصال را قطع میکند.خطای "Maximum execution time of 120 seconds exceeded:
این خطا نشان میدهد که اسکریپت PHP مدت زمان زیادی در حال اجرا بوده و زمان اجرای مجاز آن تمام شده است. این ممکن است به دلیل درخواستهای پیچیده به دیتابیس یا حلقههای بیپایان در کد باشد.
مراحل رفع خطا:
بررسی فایل db.php
:
اطمینان حاصل کنید که اتصال به دیتابیس به درستی انجام شده باشد. برای این کار میتوانید از نمونه کد زیر استفاده کنید:
try {
$pdo = new PDO('mysql:host=localhost;dbname=your_database_name', 'root', '');
// تنظیمات PDO
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
مطمئن شوید که اطلاعات اتصال (localhost
, your_database_name
, root
, و غیره) درست باشد.
افزایش زمان اجرای PHP:
برای افزایش زمان اجرای PHP، میتوانید تنظیمات زیر را در فایل php.ini
خود تغییر دهید:
max_execution_time = 300 ; زمان اجرا را به ۵ دقیقه تغییر میدهیم
همچنین میتوانید این تنظیمات را به صورت موقت در کد PHP خود نیز تغییر دهید:
ini_set('max_execution_time', 300); // ۵ دقیقه
تنظیمات MySQL:
اگر خطای "MySQL server has gone away" رخ میدهد، ممکن است نیاز به افزایش مقادیر wait_timeout
و interactive_timeout
در تنظیمات MySQL خود داشته باشید. برای این کار به فایل پیکربندی my.cnf
(در مسیر /etc/my.cnf
یا /etc/mysql/my.cnf
) بروید و مقادیر زیر را تغییر دهید:
wait_timeout = 28800
interactive_timeout = 28800
بررسی طولانی بودن درخواستها:
اگر در کد شما از حلقهها یا کوئریهای پیچیده استفاده میکنید، ممکن است نیاز باشد که آنها را بهینه کنید تا از زمان اجرای طولانی جلوگیری شود. برای این کار میتوانید:
بعد از اعمال تغییرات، اگر مشکل حل نشد، میتوانید خطاها و گزارشات دیتابیس را بررسی کنید تا علت دقیقتر را شناسایی کنید.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟