22139
よろしくお願いします。

ロリポップを使用しているのですが、  
ローカルではPDOでのDB接続が問題なく動いているのに対して、  
サーバに上げると接続でエラーが発生します。

環境は  
Apach 2.2.14(win32)  
PHP 5.4.39  
windows8.1

エラーメッセージは以下の通りです。

> Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000]
> [2013] Lost connection to MySQL server at 'reading initial communication
> packet', system error: 111' in /home/users/0/pecori.jp-
> mahuyu/web/sangaku/dbset/db_ini.php:9 Stack trace: #0
> /home/users/0/pecori.jp-mahuyu/web/sangaku/dbset/db_ini.php(9):
> PDO->__construct('mysql:host=user...', '●●●●●●', '●●●●●●', Array) #1
> /home/users/0/pecori.jp-mahuyu/web/sangaku/index.php(4):
> include('/home/users/0/p...') #2 {main} thrown in /home/users/0/pecori.jp-
> mahuyu/web/sangaku/dbset/db_ini.php on line 9

db_ini.phpの内容は以下の通りです。

```

    <?php
    
    $username = "LAA0620277";
    $password = "3ZkUZmVU";
    $pdo = new PDO(
        'mysql:host=●●●●;dbname=LAA0620277-1y1nqp',
        $username,
        $password,
        array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
    ?>
    
```

hostにはFTPSサーバーの値を指定していますが正しいでしょうか。

何らかの原因で接続が切れたという情報はネットで調べて分かったのですが、  
対処方法までは分かりませんでした。

どのように対処すべきでしょうか？  
よろしくお願いします。
CC BY-SA 3.0
2016-02-16T01:52:06.733
22135
2016-02-16T02:41:36.110
12797
question
php mysql pdo
サーバに上げたファイルで、PDOでのDB接続エラーが発生する
指定しているホストが間違っている為、接続出来ないでエラーになってるんじゃないでしょうか。  
ロリポップのマニュアルを見てみると、ユーザー専用ページの中でデータベースのサーバー名も確認出来るようですのでそちらで確認してみたらいかがでしょう。  
DBを作成していない場合は作成する必要があるみたいです。
CC BY-SA 3.0
2016-02-16T02:23:13.683
22139
2016-02-16T02:23:13.683
3524
22135
answer
> hostにはFTPSサーバーの値を指定していますが正しいでしょうか。

MySQLサーバのホスト名を指定しなければなりません。具体的に設定すべき値はマニュアルやヘルプに確認方法が記載されていると思いますので確認してください。

本題ではないですが、文字エンコーディングの指定が

```

    array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8")
    
```

で行われていますが、これを使わず、DSNで

```

    'mysql:host=hostname;dbname=dbname;charset=utf8'
    
```

のように指定するようにしてください。さらに、オプションで

```

     array(PDO::ATTR_EMULATE_PREPARES => false)
    
```

を指定してください。
CC BY-SA 3.0
2016-02-16T02:41:36.110
22142
2016-02-16T02:41:36.110
5793
22135
answer