37788


お世話になります。

XAMPPを始めようと、インストールして起動させるまでは何事もなく成功していたのですが、  
文字コードをUTF-8に変更しようとmy.iniを変更したところ、下記のようなエラーが出続けるようになりました。  
必死に自分で追おうとしたのですが、すみません、挫折しました。

[code]

    Warning in .\libraries\dbi\DBIMysqli.php#184
     mysqli_query(): MySQL server has gone away
    
    Backtrace
    
    .\libraries\dbi\DBIMysqli.php#184: mysqli_query(
    ,
    string 'SHOW TABLES FROM `phpmyadmin`;',
    integer 0,
    )
    .\libraries\DatabaseInterface.php#267: PMA\libraries\dbi\DBIMysqli->realQuery(
    string 'SHOW TABLES FROM `phpmyadmin`;',
    ,
    integer 1,
    )
    .\libraries\DatabaseInterface.php#1639: PMA\libraries\DatabaseInterface->tryQuery(
    string 'SHOW TABLES FROM `phpmyadmin`;',
    ,
    integer 1,
    boolean false,
    )
    .\libraries\DatabaseInterface.php#327: PMA\libraries\DatabaseInterface->fetchResult(
    string 'SHOW TABLES FROM `phpmyadmin`;',
    NULL,
    integer 0,
    ,
    integer 1,
    )
    .\libraries\relation.lib.php#1928: PMA\libraries\DatabaseInterface->getTables(
    string 'phpmyadmin',
    ,
    )
    .\libraries\common.inc.php#922: PMA_fixPMATables(
    string 'phpmyadmin',
    boolean false,
    )
    .\db_structure.php#15: require_once(.\libraries\common.inc.php)
    Warning in .\libraries\dbi\DBIMysqli.php#184
     mysqli_query(): Error reading result set's header
    
    Backtrace
    
    .\libraries\dbi\DBIMysqli.php#184: mysqli_query(
    ,
    string 'SHOW TABLES FROM `phpmyadmin`;',
    integer 0,
    )
    .\libraries\DatabaseInterface.php#267: PMA\libraries\dbi\DBIMysqli->realQuery(
    string 'SHOW TABLES FROM `phpmyadmin`;',
    ,
    integer 1,
    )
    .\libraries\DatabaseInterface.php#1639: PMA\libraries\DatabaseInterface->tryQuery(
    string 'SHOW TABLES FROM `phpmyadmin`;',
    ,
    integer 1,
    boolean false,
    )
    .\libraries\DatabaseInterface.php#327: PMA\libraries\DatabaseInterface->fetchResult(
    string 'SHOW TABLES FROM `phpmyadmin`;',
    NULL,
    integer 0,
    ,
    integer 1,
    )
    .\libraries\relation.lib.php#1928: PMA\libraries\DatabaseInterface->getTables(
    string 'phpmyadmin',
    ,
    )
    .\libraries\common.inc.php#922: PMA_fixPMATables(
    string 'phpmyadmin',
    boolean false,
    )
    .\db_structure.php#15: require_once(.\libraries\common.inc.php)
    
[/code]

参考にしたのは、下記のサイト様です。

<https://www.adminweb.jp/xampp/mysql/index4.html>

尚、使用したXAMPPのバージョンは『xampp-win32-7.1.7-0-VC14-installer』です。

サイト様の記述の通り、指定のコメントを削除し、default-character-set=utf8の  
文をそれぞれに追加しました。

他に変更したところは一切ありません。  
もちろん、データベースの再起動も行っています。

対処方法をお教えください。お願いいたします。

[![画像の説明をここに入力](https://i.stack.imgur.com/1Ltyn.png)](https://i.stack.imgur.com/1Ltyn.png)


CC BY-SA 3.0
2017-08-11T07:18:24.753
37115
2017-09-08T01:41:35.917
2017-08-11T07:26:25.957
9374
9374
question
phpmyadmin xampp
XAMPPをインストール後、Mysqlの文字コードの設定をしたらエラーが出続けます


実際に変更した my.ini の内容を提示すると期待する回答が得られやすいかと思います。

Google で「[mysql server has gone away
xampp](https://www.google.co.jp/search?q=mysql+server+has+gone+away+xampp)」と検索すると以下のような対策が見当たりました。

状況から察するに、 init-connect を再コメントアウトするか、 php.ini で default_charset
を指定するとよいのではないでしょうか。

### max_allowed_packet

[Solution to MySQL error #2006 in XAMPP](http://eppand.com/solution-to-mysql-
error-2006-in-xampp/)

  1. :¥xampp¥mysql¥bin¥my.ini を開く。
  2. max_allowed_packet の値を増やす。デフォルトは 1M で、 10M に増やす。
  3. my.ini ファイルを保存する。
  4. XAMPP の MySQL と Apache サーバーを再起動する。

* * *

### init-connect

[MySQLでMySQL server has gone awayエラー - Programming Academy Tech
Note](http://pgacademy.hateblo.jp/entry/2013/06/08/151517)

[code]

    init-connect=\'SET NAMES utf8\'
    
[/code]

が NG だった

* * *

### default_charset

[utf 8 - MySQL server has gone away due to error CHARACTER SET 'utf8' - Stack
Overflow](https://stackoverflow.com/questions/40379322/mysql-server-has-gone-
away-due-to-error-character-set-utf8)

D:¥xampp¥php¥php.ini ファイルの PHP のデフォルトのキャラクターの default_charset = "UTF-8"
のコメントを外すと動作する。

[code]

    ; PHP's built-in default is text/html
    ; http://php.net/default-mimetype
    default_mimetype = "text/html"
    
    ; PHP's default character set is set to empty.
    ; http://php.net/default-charset
    ;default_charset = "UTF-8"
    
[/code]

D:¥xampp¥mysql¥bin¥my.ini ファイルにもいくつかの変更を加える。

[code]

    ## UTF 8 Settings
    #init-connect=\'SET NAMES utf8\'
    collation_server=utf8_unicode_ci
    character_set_server=utf8
    skip-character-set-client-handshake
    character_sets-dir="D:/xampp/mysql/share/charsets"
    
[/code]


CC BY-SA 3.0
2017-08-14T01:35:22.840
37172
2017-08-14T01:35:22.840
20043
37115
answer


自分もさっき全く同じものに引っかかりました。

`#init-connect=\'SET NAMES utf8\'`

ですが、参考サイトに

> init-connect='SET NAMES utf8' の部分は「\」を除去しています

とあるので、utf8\'をutf8'にしてよしOK,と思ったのですが、よくよくサンプルコードを見ると

`init-connect='SET NAMES utf8'`

ってなってるんですよね。という訳で、'SET NAMES utf8'にしなきゃいけないよ、取るべき'\'は二つありますよ、という話でした。


CC BY-SA 3.0
2017-09-07T22:44:13.443
37788
2017-09-08T01:41:35.917
2017-09-08T01:41:35.917
3060
25270
37115
answer