sql >> データベース >  >> RDS >> Mysql

MySQLサーバーでの再接続が終了しました

    おそらく、このような独自のクラスを作成する必要があります

    1. try/exceptを削除します __constructから
    2. 次に、次のようにデータベースに接続します:
    $conn = null;
    $limit = 10;
    $counter = 0;
    while (true) {
      try {
        $conn = DBConn();
        break;
      }
      catch (Exception $e) {
        $conn = null;
        $counter++;
        if ($counter == $limit)
          throw $e;
      }
    
    }

    編集1

    しかし、あなたがあなたのサーバーがなくなると言うなら....それならこのようなsmthかもしれません

    protected function _connect( $persistent = false ) {
    $conn = null;
    $limit = 10;
    $counter = 0;
    while (true) {
      try {
            $this->conn = new PDO( "mysql:host=localhost;dbname=test", 'test', "hoollaahaoo" );
            $this->conn->exec( "SET CHARACTER SET utf8" );
            $this->conn->setAttribute( PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC ); 
            if ( $persistent )
                $this->conn->setAttribute( PDO::ATTR_PERSISTENT, true );
    }
      catch (Exception $e) {
        $conn = null;
        $counter++;
        if ($counter == $limit)
          throw $e;
      }
    }
    
    public function __construct( $persistent = false )
    {
        $this->_connect($persistent);
    }
    



    1. SQLite Group By

    2. シングルカーソルのフラッシング

    3. SQLは、パラメーターがnullの場合はすべて選択し、それ以外の場合は特定の項目を返します

    4. Linuxで実行されているアプリケーションをSQLServerのAmazonRelationalDatabase Services(RDS)に接続する