I
use to use a fragrance-free oxygen-type powder mixed with a fragrance-free liquid hand dish detergent like Seventh Generation. Dump about 1/2 cup of the powder into a bucket, pour about 2 tablespoons dish detergent over it to make a paste and then scrub the mixture into the grout with a wet scotchbright pad. Rinse everything when done. (I should say wear gloves because the oxygen powder is a very strong hydrogen peroxide powder and will affect your hands.)
It takes a lot of elbow grease though so I haven't been able to do it for a while. You could probably just rub it on and let it soak for a while before rinsing it off.
It does deodorize wonderfully. Once when my mom was still working and I had done this in the bathroom, she walked through the backdoor and the first thing she said was, "The house smells so clean." If I remember correctly, the bathroom on the other side of the house from where she was standing, was the only room I had managed to clean that day so it affected the smell in the whole house.
We buy our oxycleaner in bulk on ebay once a year at the cheapest price we can find it but I think some of the dollar stores also sell a fragrance free type cheaply. I would check with the company about a current product ingredient list. Look for one with just "sodium percarbonate" if you do.
I suppose you could use plain hydrogen peroxide, baking soda, and dish soap to do something similar but drugstore peroxide has undisclosed stabilizers which I'm iffy about:
http://h2o2uses.com/hydrogen-peroxide-grades-and-stabilizers. Plus, with my MCS (multiple chemical sensitivies), I can smell them and don't like that smell.