У меня установлен MySQL Server 5.1.54 на Windows 7 Enterprise, и у меня непоследовательные значения переменной 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.
Есть идеи, что бы объяснить это поведение?