6

「max_allowed_pa​​cket=100M」行を my.ini ファイルに挿入することでこの値を設定できますが、MYSQL コマンド プロンプトで「max_allowed_pa​​cket」変数を設定できませんでした。次の警告が表示されるのはなぜですか?

mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+
1 row in set (0.00 sec)

mysql> warnings
Show warnings enabled.
mysql> set global max_allowed_packet=123456000;
Query OK, 0 rows affected, 1 warning (0.00 sec)

Warning (Code 1292): Truncated incorrect max_allowed_packet value: '123456000'
mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+
1 row in set (0.00 sec)

mysql>

次のように小さいサイズも試しました。

mysql> set global max_allowed_packet=123456;
Query OK, 0 rows affected, 1 warning (0.00 sec)

Warning (Code 1292): Truncated incorrect max_allowed_packet value: '123456'
mysql>

mysql> set session max_allowed_packet=123456;
ERROR 1621 (HY000): SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
Warning (Code 1292): Truncated incorrect max_allowed_packet value: '123456'
Error (Code 1621): SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value

MySQL バージョン

    mysql> SHOW VARIABLES LIKE "%version%";
+-------------------------+------------------------------+
| Variable_name           | Value                        |
+-------------------------+------------------------------+
| innodb_version          | 1.1.8                        |
| protocol_version        | 10                           |
| slave_type_conversions  |                              |
| version                 | 5.5.25                       |
| version_comment         | MySQL Community Server (GPL) |
| version_compile_machine | x86                          |
| version_compile_os      | Win64                        |
+-------------------------+------------------------------+
7 rows in set (0.00 sec)

mysql>
4

3 に答える 3

8

受け入れられる値には1024の倍数を使用する必要があることに気づきました。

2048001の値は失敗します:

mysql> set global max_allowed_packet=2048001;
Query OK, 0 rows affected, 1 warning (0.00 sec)

Warning (Code 1292): Truncated incorrect max_allowed_packet value: '2048001'

ただし、2048000の値は機能します。

mysql> set global max_allowed_packet=2048000;
Query OK, 0 rows affected (0.00 sec)

マニュアルには次のように記載されていますが、「切り捨て」は設計どおりに機能しないようです。

値は1024の倍数である必要があります。非倍数は、最も近い倍数に切り捨てられます。

于 2013-02-27T11:47:13.030 に答える
4

http://bugs.mysql.com/bug.php?id=22891およびhttp://bugs.mysql.com/bug.php?id=32223 ここでの結論は、max_allowed_pa​​cket は起動パラメータのみであるべきだというものでした。

于 2013-01-08T09:34:56.647 に答える