Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana mengatasi kesalahan Umum:Server MySQL 2006 telah hilang

Saya berani mengatakan masalahnya adalah dengan wait_timeout . Ini disetel ke 30 detik di host bersama saya dan di host lokal saya disetel untuk 28800.

Saya menemukan bahwa saya dapat mengubahnya untuk sesi, sehingga Anda dapat mengeluarkan kueri:SET session wait_timeout=28800

PERBARUI OP menentukan bahwa dia juga perlu mengubah variabel interactive_timeout demikian juga. Ini mungkin diperlukan atau tidak untuk semua orang.

Kode di bawah ini menunjukkan pengaturan sebelum dan sesudah perubahan untuk memverifikasi bahwa itu telah diubah.

Jadi, setel wait_timeout=28800 (dan interactive_timeout =28800) di awal kueri Anda dan lihat apakah kueri itu selesai.

Ingatlah untuk memasukkan kredensial db Anda sendiri sebagai pengganti DB_SERVER, DB_USER, DB_PASS, DB_NAME

PERBARUI Juga, jika ini berhasil, Anda ingin memperjelas apa yang Anda lakukan dengan mengatur wait_timeout lebih tinggi. Menyetelnya ke 28800 adalah 8 jam dan itu banyak.

Berikut ini dari situs ini . Direkomendasikan untuk menyetel wait_timeout ke 300 - yang akan saya coba dan laporkan kembali dengan hasil saya (setelah beberapa minggu).

<?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. apakah `tanggal` nama kolom mysql yang valid?

  2. Apa susunan MySQL yang terbaik untuk menerima semua karakter unicode?

  3. Mengejek kueri penyisipan ke Database MySQL menggunakan Moq

  4. sql cara menggabungkan tiga kueri dari dua tabel menjadi satu kueri

  5. Mengirimkan formulir menggunakan <input type =button>