我在 Windows 7 Enterprise 上安装了 MySQL Server 版本 5.1.54,但变量 max_allowed_packet 的值不一致。我在 my.ini 中配置了该变量:
max_allowed_packet=1024M
当我运行 mysql --help 时,其输出末尾会显示变量及其值的列表。max_allowed_packet 的值列示如下:
max_allowed_packet 16777216
当我运行 mysqldump --help 时,它会列出 max_allowed_packet 的值:
max_allowed_packet 25165824
但是当我使用 mysql 可执行文件登录时,出现以下信息:
mysql> SHOW VARIABLES LIKE 'max_allowed_packet';
+--------------------+------------+
| Variable_name | Value |
+--------------------+------------+
| max_allowed_packet | 1073741824 |
+--------------------+------------+
1 row in set (0.00 sec)
因此,同一台服务器列出了此变量的三个不同值。mysql --help 和 mysqldump --help 都列出了读取其配置的顺序,并且它们是相同的。
C:\mysql --help
...
Default options are read from the following files in the given order:
C:\Windows\my.ini C:\Windows\my.cnf C:\my.ini C:\my.cnf C:\Program Files\MySQL\MySQL Server 5.1\my.ini C:\Program Files\MySQL\MySQL Server 5.1\my.cnf
C:\mysqldump --help
...
Default options are read from the following files in the given order:
C:\Windows\my.ini C:\Windows\my.cnf C:\my.ini C:\my.cnf C:\Program Files\MySQL\MySQL Server 5.1\my.ini C:\Program Files\MySQL\MySQL Server 5.1\my.cnf
列出的配置文件中只有 C:\Program Files\MySQL\MySQL Server 5.1\my.ini 存在,并且它确实包含 1024M 设置。
有什么想法可以解释这种行为吗?
答案1
请在 C:\Program Files\MySQL\MySQL Server 5.1\my.ini 中查找名为[mysqldump]然后在它的下面查找 max_allowed_packet。该设置应该在那里。如果没有,请创建该组并将 max_allowed_packet 添加到您想要的大小。