How to add new columns to MySQL database retaining existing data?
Answering for main question - 


The Best way, use any kinds of database modelling software.
      Including    MySQL Workbench. Where all changes first do on schema
      diagram, than    sync with any number of database. Many of them
      prepare for You clear    SQL scrip which You can run independently. Very good tools - DBSchema.
Other possible way - use any kind of database synchronisation
software, such as:


Next programs (not only) has functional for sync structure of databases


SQLyog and 
MySQL Workbench
Navicat