Rumah >pembangunan bahagian belakang >tutorial php >Adakah Pilihan PHP mysql.connect_timeout Menyebabkan Tamat Masa Sambungan Pelayan MySQL Selepas 60 Saat?
Masalah terputus sambungan Pelayan MySQL: terputus sambungan 60 saat selepas tamat masa
Masalah:
Saya dapati bahawa pertanyaan SQL yang sebelum ini berjalan dengan baik kini tamat selepas 60 saat dan menimbulkan ralat. Walaupun pertanyaan itu perlahan, ia dijalankan sebagai sebahagian daripada kerja malam, jadi ia tidak menjadi masalah per se (jadi tolong jangan cadangkan saya mengoptimumkannya).
Saya boleh menghasilkan semula ralat secara konsisten dengan menjalankan "select SLEEP(120);" daripada PHP seperti yang ditunjukkan di bawah. Walau bagaimanapun, menjalankan pernyataan yang sama daripada klien MySQL berjaya (mengembalikan 0). Saya cuba melaraskan tunggu_masa tamat (ditetapkan kepada 28800) tetapi tidak berjaya. Saya juga memulakan semula pelayan pangkalan data dan komputer itu sendiri.
Saya sentiasa mendapat tamat masa tepat 60 saat, yang membuatkan saya fikir ia mungkin isu persediaan dan bukannya isu kekangan sumber.
Saya sedang menjalankan:
Berikut ialah kod ujian saya, output dan keputusan SHOW VARIABLES.
... 代码、输出和 SHOW VARIABLES 如下所示 ...
Jawapan:
pilihan php mysql.connect_timeout ialah punca isu ini. Ia digunakan bukan sahaja untuk tamat masa sambungan tetapi juga untuk menunggu respons pertama daripada pelayan. Anda boleh meningkatkannya seperti ini:
ini_set('mysql.connect_timeout', 300); ini_set('default_socket_timeout', 300);
Atas ialah kandungan terperinci Adakah Pilihan PHP mysql.connect_timeout Menyebabkan Tamat Masa Sambungan Pelayan MySQL Selepas 60 Saat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!