Is there a way to have mysql automatically create partitions as needed?
Why do you want to use partitions?  "Large" is not a reason; I have seen billion-row tables that work just fine without partitioning.  PARTITIONing are unlikely to provide any benefit.

If you will be deleting "old" data based on the YEAR(date), that is a good use case for partitioning.

More discussion shows how to DROP the oldest partition, etc.