It is simple the user just needs to be given the "LOCK TABLES" privilege.
As root run this command:
GRANT LOCK TABLES ON yourdatabase.* TO yourmysqluser@localhost;........
GRANT SELECT, LOCK TABLES ON *.* TO yourmysqluser@localhost;
All you need to do a full MySQL dump on all databases is the SELECT and LOCK TABLES privileges. This way you don't have to use the mysql root user. Data could be compromised this way but at least no harm from manipulation, changes or deletion are possible by locking down the privileges to the minimum for a full MySQL dump and backup.........