Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

सामान्य त्रुटि कैसे हल करें:2006 MySQL सर्वर चला गया है

मैं यह कहने का साहस करूंगा कि समस्या wait_timeout . के साथ है . यह मेरे साझा होस्ट पर 30 सेकंड पर सेट है और मेरे लोकलहोस्ट पर 28800 के लिए सेट है।

मैंने पाया कि मैं इसे सत्र के लिए बदल सकता हूं, ताकि आप क्वेरी जारी कर सकें:SET session wait_timeout=28800

अपडेट करें ओपी ने निर्धारित किया कि उसे वेरिएबल interactive_timeout . को भी बदलने की जरूरत है भी। यह सभी के लिए आवश्यक हो भी सकता है और नहीं भी।

नीचे दिया गया कोड परिवर्तन से पहले और बाद की सेटिंग को यह सत्यापित करने के लिए दिखाता है कि इसे बदल दिया गया है।

इसलिए, अपनी क्वेरी की शुरुआत में प्रतीक्षा_टाइमआउट =28800 (और इंटरेक्टिव_टाइमआउट =28800) सेट करें और देखें कि क्या यह पूरा होता है।

DB_SERVER, DB_USER, DB_PASS, DB_NAME के स्थान पर अपना स्वयं का db क्रेडेंशियल डालना याद रखें

अपडेट करें साथ ही, अगर यह काम करता है, तो आप प्रतीक्षा_टाइमआउट उच्च सेट करके आप जो कर रहे हैं उस पर स्पष्ट होना चाहते हैं। इसे 28800 पर सेट करना 8 घंटे है और यह बहुत है।

निम्नलिखित इस साइट से है। . यह Wait_timeout को 300 पर सेट करने की अनुशंसा करता है - जिसे मैं कोशिश करूंगा और अपने परिणामों के साथ वापस रिपोर्ट करूंगा (कुछ हफ्तों के बाद)।

<?php

$db = new db();

$results = $db->query("SHOW VARIABLES LIKE '%timeout%'", TRUE);
echo "<pre>";
var_dump($results);
echo "</pre>";

$results = $db->query("SET session wait_timeout=28800", FALSE);
// UPDATE - this is also needed
$results = $db->query("SET session interactive_timeout=28800", FALSE);

$results = $db->query("SHOW VARIABLES LIKE '%timeout%'", TRUE);
echo "<pre>";
var_dump($results);
echo "</pre>";


class db {

    public $mysqli;

    public function __construct() {
        $this->mysqli = new mysqli(DB_SERVER, DB_USER, DB_PASS, DB_NAME);
        if (mysqli_connect_errno()) {
            exit();
        }
    }

    public function __destruct() {
        $this->disconnect();
        unset($this->mysqli);
    }

    public function disconnect() {
        $this->mysqli->close();
    }

    function query($q, $resultset) {

        /* create a prepared statement */
        if (!($stmt = $this->mysqli->prepare($q))) {
            echo("Sql Error: " . $q . ' Sql error #: ' . $this->mysqli->errno . ' - ' . $this->mysqli->error);
            return false;
        }

        /* execute query */
        $stmt->execute();

        if ($stmt->errno) {
            echo("Sql Error: " . $q . ' Sql error #: ' . $stmt->errno . ' - ' . $stmt->error);
            return false;
        }
        if ($resultset) {
            $result = $stmt->get_result();
            for ($set = array(); $row = $result->fetch_assoc();) {
            $set[] = $row;
            }
            $stmt->close();
            return $set;
        }
    }
}
 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL:फ़ील्ड को 0 पर सेट करने वाली सभी पंक्तियों को अपडेट करना, लेकिन एक पंक्ति के फ़ील्ड को 1 पर सेट करना

  2. सरलीकृत:mysqli num_rows काम नहीं कर रहा है

  3. तालिका बनाएं यदि मौजूद नहीं है तो तालिका पहले से मौजूद होने के साथ विफल हो जाती है

  4. PHP का उपयोग करके डेटाबेस में दोहराए बिना यादृच्छिक संख्या कैसे उत्पन्न करें?

  5. MySQL AS कीवर्ड