このエラーメッセージは、このフォーラムで何度も送信されました。
私は成功せずに以下を試しました。
コンテキスト
これはSymfony1/Doctrine1 Webアプリケーションです。このエラーは私のコンピューターとサーバー(両方ともUbuntu)に表示されます。ブラウザレベル(Chrome)でエラーが発生しました:
POST http://*****/administration_dev.php/utilisateur net::ERR_EMPTY_RESPONSE
これが私のコンピュータの詳細です:
$ uname -a
Linux Bureau 4.4.0-31-generic #50-Ubuntu SMP Wed Jul 13 00:07:12 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04 LTS"
$ dpkg -l |grep php
ii libapache2-mod-php 1:7.0+35ubuntu6 all server-side, HTML-embedded scripting language (Apache 2 module) (default)
ii libapache2-mod-php7.0 7.0.4-7ubuntu2.1 AMD64 server-side, HTML-embedded scripting language (Apache 2 module)
ii php 1:7.0+35ubuntu6 all server-side, HTML-embedded scripting language (default)
.../...
$ dpkg -l |grep mysql-
ii mysql-client-5.7 5.7.13-0ubuntu0.16.04.2 AMD64 MySQL database client binaries
ii mysql-client-core-5.7 5.7.13-0ubuntu0.16.04.2 AMD64 MySQL database core client binaries
ii mysql-common 5.7.13-0ubuntu0.16.04.2 all MySQL database common files, e.g. /etc/mysql/my.cnf
ii mysql-server 5.7.13-0ubuntu0.16.04.2 all MySQL database server (metapackage depending on the latest version)
ii mysql-server-5.7 5.7.13-0ubuntu0.16.04.2 AMD64 MySQL database server binaries and system database setup
ii mysql-server-core-5.7 5.7.13-0ubuntu0.16.04.2 AMD64 MySQL database server binaries
保存プロセス中に新しいユーザーを作成しようとすると、エラーが表示されます。
提案された提案
$ mysql -uroot -p -e "SET GLOBAL max_allowed_packet = 1024 * 1024 * 1024;"
Enter password:
$ mysql -uroot -p -e "SHOW VARIABLES LIKE 'max_allowed_packet';"
Enter password:
+--------------------+------------+
| Variable_name | Value |
+--------------------+------------+
| max_allowed_packet | 1073741824 |
+--------------------+------------+
$ tail -f -n0 /var/log/mysql/error.log
2016-07-24T19:41:32.736817Z 23 [Note] Aborted connection 23 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
2016-07-24T19:41:32.906433Z 24 [Note] Aborted connection 24 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
2016-07-24T19:41:33.056226Z 25 [Note] Aborted connection 25 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
2016-07-24T19:41:33.212496Z 26 [Note] Aborted connection 26 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
2016-07-24T19:41:33.363754Z 27 [Note] Aborted connection 27 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
2016-07-24T19:41:33.516194Z 28 [Note] Aborted connection 28 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
2016-07-24T19:41:33.668201Z 29 [Note] Aborted connection 29 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
$ cat /etc/mysql/conf.d/david.cnf
[mysqld]
sql-mode=NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
max_allowed_packet = 256M
innodb_log_buffer_size = 32M
innodb_log_file_size = 2047M
$ mysql -uroot -p -e "SET GLOBAL innodb_fast_shutdown = 0;"
$ Sudo service mysql stop
$ Sudo mv /var/lib/mysql/ib_logfile0 /var/lib/mysql/ib_logfile0.bak
$ Sudo mv /var/lib/mysql/ib_logfile1 /var/lib/mysql/ib_logfile1.bak
$ Sudo service mysql start
$ tail -f -n0 /var/log/mysql/error.log
2016-07-24T19:56:02.342912Z 7 [Note] Aborted connection 7 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
2016-07-24T19:56:02.494024Z 8 [Note] Aborted connection 8 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
2016-07-24T19:56:02.642960Z 9 [Note] Aborted connection 9 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
2016-07-24T19:56:02.787908Z 10 [Note] Aborted connection 10 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
2016-07-24T19:56:02.933718Z 11 [Note] Aborted connection 11 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
2016-07-24T19:56:03.084066Z 12 [Note] Aborted connection 12 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
2016-07-24T19:56:03.235319Z 13 [Note] Aborted connection 13 to db: 'pfs2' user: 'pfs2' Host: 'localhost' (Got an error reading communication packets)
アイデアや提案が不足しているので、ここで助けを求めています。
よろしくお願いします。必要に応じて詳細をお知らせします。
デビッド。
解決策はコードにありました。 PHP例外は処理されず、開いているSQLトランザクションを閉じる前にアプリケーションがクラッシュします。
Mysqlエラーメッセージの原因は、この不確定な状態にある可能性があります。これ以上は言えません。
Rolando、ありがとうございます。
PHPを1つのサーバーで使用してMySQL 5.7を実行しています。これは、サーバーがMySQL専用ではないことを示しています。PHPとMySQLは明らかにRAMで競合しています。
また、InnoDBバッファープールサイズを設定しようとする試みも見られません。 innodb_buffer_pool_size のデフォルト値は128M(134217728)です。
max_allowed_packet について覚えておいてください。変数名が示すように、 これはMySQLパケットに許可されている最大サイズです 。 MySQLドキュメントによると、MySQLパケットは1Gとして開始されません。その初期サイズは net_buffer_length の値に基づいています。 MySQLパケットは、必要に応じて動的に max_allowed_packet に拡張されます。
MySQLパケットを調整する試みは、RAMの不足により無効になります。
別のサーバーに余裕がない場合は、RAMとバッファープールサイズを増やしてください。
MySQL 5.7を使用しているため、バッファプールを動的に拡張できます。
次の手順で2GBに設定します。
mysql> SET GLOBAL innodb_buffer_pool_size = 1024 * 1024 * 1024 * 2;