If you need/have a large transaction log file, a shut down can take a while. This post lists how you can force a flush before you do so, decreasing shut down time.

In short:

mysql> set global innodb_max_dirty_pages_pct = 0;

Then monitor the dirty pages:

mysqladmin ext -i10 | grep dirty