Mysqldump will backup by default all the triggers but NOT the stored procedures/functions. There are 2 mysqldump parameters that control this behavior:
Assume we want to backup only the stored procedures and triggers
the mysql tables and data (this can be useful to import these in another db/server that has already the data but not the stored procedures and/or triggers),
then we should run something like:
mysqldump -u root -p'password' --routines --triggers --no-create-info --no-data --no-create-db --skip-opt db_name > dbfunction.sql
Assume we want to backup only the stored procedures and triggers
the mysql tables and data (this can be useful to import these in another db/server that has already the data but not the stored procedures and/or triggers),
then we should run something like:
mysqldump -u root -p'password' --routines --triggers --no-create-info --no-data --no-create-db --skip-opt db_name > dbfunction.sql