is max_allowed_packet a dynamic variable

i see max_allowed_packet is a dynamic variable in doc
but i changed it’s value ,still have problem,why?

ysql> show global variables like ‘max_allowed_packet’;
±-------------------±--------+
| Variable_name | Value |
±-------------------±--------+
| max_allowed_packet | 1048576 |
±-------------------±--------+
1 row in set (0.00 sec)

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

mysql> source /tmp/trade_ft.sql;
ERROR 1153 (08S01): Got a packet bigger than ‘max_allowed_packet’ bytes
mysql> show global variables like ‘max_allowed_packet’;
±-------------------±---------+
| Variable_name | Value |
±-------------------±---------+
| max_allowed_packet | 61456384 |
±-------------------±---------+
1 row in set (0.00 sec)

Command-Line Format --max_allowed_packet=#
Option-File Format max_allowed_packet
Option Sets Variable Yes, max_allowed_packet
Variable Name max_allowed_packet
Variable Scope Global
Dynamic Variable Yes
Permitted Values
Type numeric
Default 1048576
Range 1024 … 1073741824

You changed the global value, but your session still has the old session value.